首页 > 其他 > 详细

简单的Gradle命令

时间:2016-03-26 22:17:46      阅读:402      评论:0      收藏:0      [点我收藏+]

入门级别的命令

  1. 新建一个build.gradle文件,输入一下内容:
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中经常发生的重复引用问题了。

创建一个有些样子的gradle项目

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
结果如下:
技术分享

使用Gradle Build一个引用了其他项目的项目

  • 项目的根目录结构如下:
    技术分享
  • 以codec为根节点的项目目录结构为:
    codec\src\main\java\org\gradle\codec\CodeC.java
  • CodeC文件的内容为:
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()));
  }

}
  • 以content为根节点的项目目录结构为:
    content\src\main\java\org\gradle\content\Poetry.java
  • Poetry文件的内容为:
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;
   }
}
  • src下面的目录结构为:
    src\main\java\org\gradle\poetry\PoetryEmitter.java
  • PoetryEmitter文件的内容为:
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());

   }
}
  • build.gradle的内容为:
/**
*这个的含义所有的项目都
*使用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
}
  • settings.gradle的内容为:
include ‘codec‘, ‘content‘
  • 执行 在控制台定位到项目的根目录,执行gradle poetry
    技术分享

  • 分析:这是一个非常简单的项目调用在multiProject中src中调用了codec和content这两个“libary”project的方法。

  • Demo下载地址:
    http://download.csdn.net/detail/guchuanhang/9473318

简单的Gradle命令

原文:http://blog.csdn.net/guchuanhang/article/details/50988031

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!