task helloWorld{
doLast{
println ‘Hello,World!‘
}
}
执行命令:gradle build
结果如下:
2. 将build.gradle的内容修改为下面的内容:
task hello
task World
hello{
doLast{
println ‘Hello,‘
}
}
World{
doLast{
println ‘World!‘
}
}
分别执行:gradle hello gradle World结果如下:
3. 将build.gradle的内容修改为下面的内容:
task hello
task World
//be carefult there hasn‘t task keyword
hello{
doLast{
println ‘Hello,‘
}
}
World{
/**
*项目需要执行hello项目
*/
dependsOn << hello
doLast{
println ‘World!‘
}
}
执行:gradle World结果如下:
4. 将build.gradle的内容修改为下面的内容:
task hello
task World
task helloWorld
hello{
doLast{
println ‘Hello,‘
}
}
World{
dependsOn << hello
doLast{
println ‘World!‘
}
}
helloWorld{
//dependsOn << hello << World
dependsOn =[hello , World]
}
执行:gradle helloWord结果如下:
这里有一个DAG(无回路有向图(Directed Acyclic Graph))的概念,同样的资源Gradle仅仅加载一次,这样就可以避免Eclipse中经常发生的重复引用问题了。
1.创建一个基础的仅仅使用java API的
在该目录下创建Poetry.java文件(这个文件夹都是新创建的)
src\main\java\org\gradle\poetry
Poetry.java代码如下:
package org.gradle.poetry;
import java.util.List;
import java.util.ArrayList;
public class Poetry{
public List<String> shakespeare() {
List<String> lines = new ArrayList<String>();
lines.add("O, pardon me, thou bleeding piece of earth,");
return lines;
}
public void emit(List<String> lines) {
for(String line: lines) {
System.out.println((line));
}
}
public static void main(String[] args) {
Poetry pe = new Poetry();
pe.emit(pe.shakespeare());
}
}
build.gradle文件如下:
apply plugin:‘java‘
task caesar(type:JavaExec){
main = ‘org.gradle.poetry.Poetry‘
classpath = sourceSets.main.runtimeClasspath
}
2.创建一个高级一点,使用maven仓库jar包的项目
在该目录下创建Poetry.java文件(这个文件夹都是新创建的)
src\main\java\org\gradle\poetry
Poetry.java代码如下:
package org.gradle.poetry;
import java.util.List;
import java.util.ArrayList;
import org.apache.commons.codec.binary.Base64;
public class Poetry{
public List<String> shakespeare() {
List<String> lines = new ArrayList<String>();
lines.add("O, pardon me, thou bleeding piece of earth,");
return lines;
}
public void emit(List<String> lines) {
for(String line: lines) {
System.out.println(encode(line));
}
}
public String encode(String line) {
Base64 codec = new Base64();
return new String(codec.encode(line.getBytes()));
}
public static void main(String[] args) {
Poetry pe = new Poetry();
pe.emit(pe.shakespeare());
}
}
build.gradle文件如下:
apply plugin:‘java‘
repositories {
mavenCentral()
}
dependencies {
compile ‘commons-codec:commons-codec:1.5‘
}
task caesar(type:JavaExec){
main = ‘org.gradle.poetry.Poetry‘
classpath = sourceSets.main.runtimeClasspath
}
执行:build caesar
结果如下:
package org.gradle.codec;
import org.apache.commons.codec.binary.Base64;
public class CodeC {
public String encode(String plainText) {
Base64 base64=new Base64();
return new String(base64.encode(plainText.getBytes()));
}
}
package org.gradle.poetry;
import java.util.List;
import java.util.ArrayList;
public class Poetry {
public List<String> shakespeare() {
List<String> lines = new ArrayList<String>();
lines.add("O, pardon me, thou bleeding piece of earth,");
return lines;
}
}
package org.gradle.poetry;
import org.gradle.codec.CodeC;
import org.gradle.poetry.Poetry;
import java.util.List;
public class PoetryEmitter{
CodeC codec=new CodeC();
public void emit(List<String> lines) {
for(String line: lines) {
System.out.println(codec.encode(line));
}
}
public static void main(String[] args) {
Poetry poetry=new Poetry();
PoetryEmitter emitter = new PoetryEmitter();
emitter.emit(poetry.shakespeare());
}
}
/**
*这个的含义所有的项目都
*使用java插件
*使用mavenCentral仓库
*/
allprojects {
apply plugin: ‘java‘
repositories {
mavenCentral()
}
}
/**
*codec项目需要使用commons-codec
*/
project(‘:codec‘) {
dependencies {
compile ‘commons-codec:commons-codec:1.5‘
}
}
project(‘:content‘) {
dependencies {
compile ‘junit:junit:4.9‘
}
}
/**
*项目需要使用codec和content项目
*/
dependencies {
compile project(‘:codec‘)
compile project(‘:content‘)
}
/**
*指明项目的MainClass
*/
task poetry(type:JavaExec){
main = ‘org.gradle.poetry.PoetryEmitter‘
classpath = sourceSets.main.runtimeClasspath
}
include ‘codec‘, ‘content‘
执行 在控制台定位到项目的根目录,执行gradle poetry
分析:这是一个非常简单的项目调用在multiProject中src中调用了codec和content这两个“libary”project的方法。
原文:http://blog.csdn.net/guchuanhang/article/details/50988031