使用gradle构造Java工程

大家学习一个新工具,第一步一般是在自己的机器上手动安装其。

打开工作空间,新建目录结构如下:

└── src
    └── main
        └── java
            └── hello

 之所以要这样,是因为gradle的Java插件默认扫描这样的目录来查找Java代码。

hello是我们的包,在里面新建Java类。比如:

package hello;
import org.joda.time.LocalTime;
public class HelloWorld {
  public static void main(String[] args) {
    LocalTime currentTime = new LocalTime();
    System.out.println(currentTime);
    Greeter greeter = new Greeter();
    System.out.println(greeter.sayHello());
  }
}

 和

package hello;

public class Greeter {
  public String sayHello() {
    return "Hello world!";
  }
}

接下来新建gradle配置文件build.gradle:

apply plugin: 'java'

repositories {
    mavenCentral()
}

sourceCompatibility = 1.8
targetCompatibility = 1.8

dependencies {
    compile "joda-time:joda-time:2.2"
}

jar {
    baseName = 'gs-gradle'
    version =  '0.1.0'
}

 第一行申明使用Java插件。因为gradle不是只支持Java,其他很多语言也可以通过gradle构建。所以gradle没有默认使用Java插件。

后面申明使用maven的库,后面是代码版本,然后是依赖申明,这里为了演示,使用了joda。后面是构建为jar包的配置,构建后jar的名称就是gs-gradle-0.1.0.jar。

现在在根目录(也就是build.gradle的目录)执行

gradle build

 就会看到结果。

然后我们继续。

打开buidl.gradle文件,在最下面增加一个任务:

task wrapper(type: Wrapper) {
    gradleVersion = '2.3'
}

 保存后执行

gradle wrapper

 你会发现生成了不少新东西,比如gradlew。这些东西类似于绿色版gradle下载器。所以如果是团队合作开发,只要大家都从版本控制服务器下载了你那个buidl.gradle,大家执行的结果就一样。

然后我们执行

gradlew build

 它会开始下载相应版本的gradle(版本就是上面task wrapper指定的),然后自动构建。

这个时候,如果你兴高采烈的跑去执行

gradlew run

 ,会发现不可以。

为了让jar包能执行,我们继续修改build.gralde:

apply plugin: 'application'

mainClassName = 'hello.HelloWorld'

 应用了application插件,并指明了主类。

然后执行gradle run,就可以正常输出了。

相关推荐