gradle

gradle構建工具:


gradle開源的項目自動化構建工具,創建在Apache ant和Apache maven的蓋臉基礎之上,並基於特定的Groovy的特色領域語言,而再也不用XML管理構建腳本
依賴管理:依賴,測試,打包,發佈 java


安裝:


https://gradle.orgweb

解壓;
unzip gradle-3.5.1-bin.zip編程

配置換件變量
GRADLE_HOME=/usr/local/gradle/gradle-3.5.1
export GRADLE_HOME
export PATH=$PATH:$GRADLE_HOME/bin閉包

 

Groovy:

是用於Java虛擬機的一種敏捷的動態語言,他是一種成熟的面相對象的編程語言,既能夠面向對象,也能夠用做存粹的腳本語言,使用該語言沒必要編寫過多的代碼,同時又具備閉包和動態語言的特性app

徹底兼容java語法,分號可選,類,方法默認都是public
編譯器自動添加getter/setter方法
屬性能夠直接用點號獲取
最後一個表達式的值被做爲返回值
自帶assert
類型弱類型
括號可選
字符串,單雙三
閉包
集合APIwebapp


代碼演示:

public class ProjectVersion {maven

    //ingron ;
    private int major
    private int min編程語言

    public ProjectVersion(int major, int min) {
        this.major = major
        this.min = min
    }ide

    //groovy can add getter/setter 工具

}

ProjectVersion p = new ProjectVersion(1,2);
println p.major


ProjectVersion p1 = null
println p1 == p


1
false

==========================
//1.可選的類型定義
def version = 1
print version 
1=========================

//assert
def version = 1;
assert  version == 2

Assertion failed: 

assert  version == 2
        |       |
        1       false

    at org.codehaus.groovy.runtime.InvokerHelper.assertFailed(InvokerHelper.java:398)
    at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.assertFailed(ScriptBytecodeAdapter.java:648)
    at ideaGroovyConsole.run(ideaGroovyConsole.groovy:6)
    ......
============================

> def s1 = 'xp'
def s2 = "xp"
def s3 = """dfsdfsdf"""
def s4 = '''dfsdfsdfs'''

println s1
println s2
println s3
println s4
xp
xp
dfsdfsdf
dfsdfsdfs
==========================
//集合API
def tools = ['ant','maven']
tools << 'gradle'//追加
assert tools.getClass() == ArrayList
assert tools.size() == 3
==========================
def buildyear = ['ant':2000,'maven':2004]
buildyear.gradle = 2009//添加
println buildyear.gradle
println buildyear.ant
println buildyear.maven
println buildyear['maven']
2009
2000
2004
2004
==========================
//閉包
def c1 = {
    v ->
        println v
}

def c2 = {
    println 'hello'
}

def method1 (Closure c) {
    c('param')
}

def method2 (Closure c) {
    c()
}

method1(c1)
method1(c2)

==========================


//構建腳本中國呢默認都是有一個Project實例的
//Project上有兩個屬性分別是group和version,值分別是com.nakedhub.gradle和1.0-SNAPSHOT
group 'com.nakedhub.gradle'
version '1.0-SNAPSHOT'


Project實例上有一個方法apply這裏省略了括號,plugin的值是java
apply plugin: 'java'

sourceCompatibility = 1.5

//repositories是一個方法,這是閉包結構,閉包做爲參數調用方法repositories
repositories {
    mavenCentral()
}

//dependencies這是一個方法,這是閉包結構,閉包做爲參數調用方法dependencies
dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.11'
}

=============================
gradle的構建目錄和maven是同樣的
src
    main
        java
        resources
        webapp
    test
        java
        resources

==============================
package com.nakedhub.todo;


import java.util.Scanner;

/**
 * Created by xupan on 2018/1/15.
 */
public class APP {

    public  static void main (String[] args){
        int i = 0;
        Scanner scanner = new Scanner(System.in);
        ToDoItem item = new ToDoItem(scanner.nextLine());
        System.out.print(item);
    }
}

package com.nakedhub.todo;

/**
 * Created by xupan on 2018/1/15.
 */
public class ToDoItem {
    //代辦事項的名稱
    private String name;

    //是否完成
    private boolean hasDone;

    public ToDoItem(String name){
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public boolean isHasDone() {
        return hasDone;
    }

    public void setHasDone(boolean hasDone) {
        this.hasDone = hasDone;
    }

    @Override
    public String toString() {
        return "ToDoItem{" +
                "name='" + name + '\'' +
                ", hasDone=" + hasDone +
                '}';
    }
}

--打包運行 xpMac:groovy xupan$ java -classpath build/libs/groovy-1.0-SNAPSHOT.jar com.nakedhub.todo.APP hhdd ToDoItem{name='hhdd', hasDone=false}

相關文章
相關標籤/搜索