Gradle构建Java程序:入门

安装Gradle

1
brew install gradle

查看版本

1
gradle -v

本机安装版本为Gradle 2.12

Java程序构建

Gradle文件

在当前目录下生成文件build.gradle:

1
apply plugin: 'java'

项目结构

项目的目录结构需要按照下列固定约束(最里面几层对应package):

  • src/main/java目录包含项目源代码
  • src/main/resources目录包含项目的资源
  • src/test/java目录包含项目测试类
  • src/test/resource目录包含项目测试资源

本例中,没有测试相关内容,因此后两个目录没有。

Java文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package com.shizhihua.example;

import java.net.*;

public class OReillyByName {
public static void main(String[] args) {
String host = "www.baidu.com";
try {
InetAddress add = InetAddress.getLocalHost();
System.out.println(add);
} catch (UnknownHostException ex) {
System.out.println("Couldn't not find the localhost");
}

try {
InetAddress adds[] = InetAddress.getAllByName(host);
for (InetAddress add:adds) {
System.out.println(add);
System.out.println(add.getHostName());
System.out.println(add.getHostAddress());
}
} catch (UnknownHostException ex) {
System.out.println("Couldn't not find " + host);
}
}
}

执行构建

1
gradle build

生成后的项目目录

执行构建后,Gradle会生出一个目录build

  • classes目录包含编译生成的.class文件
  • libs目录包含生成的jarwar文件

运行java程序

运行程序时,必须通过-cp指定CLASSPATH:

1
java -cp build/classes/main/ com/shizhihua/example/OReillyByName

jar配置

上面得到的jar文件运行时需要指定入口,即
libs中的jar文件,需要设置Main-Class属性的值,指定程序的入口点。为了运行简单,可以在gradle文件中直接配置好入口,即

1
2
3
4
5
6
7
apply plugin: 'java'

jar {
manifest {
attributes 'Main-Class': 'com.shizhihua.example.OReillyByName'
}
}

通过运行gradle build生产的jar文件,即可直接运行:

1
java -jar build/libs/testGradle.jar