Gradle基本使用(4):构建Java项目

来源:互联网 发布:冷漠没有同情心知乎 编辑:程序博客网 时间:2024/05/20 16:14

Gradle 构建Java项目(IDEA环境)


使用 Gradle 来构建 Java 项目十分方便,而 gradle 脚本借助 groovy 提供十分强大的灵活性和构建能力;
以下是使用 gradle 构建 Java 项目的基本过程:

1)创建构建脚本-添加依赖

在项目的根目录下创建一个 build.gradle 构建脚本,如果是 IDEA,可以直接创建 gradle 工程模板,详见:http://blog.csdn.net/al_assad/article/details/78074119;
一个 IDEA 创建的默认 build.gradle 脚本如下:
以上脚本部分是关于依赖管理,可以参照:http://blog.csdn.net/al_assad/article/details/78074155
当添加了新的依赖时,如果使用的是IDEA环境,点击Gradle面板的刷新按钮即可从远程仓库下载依赖库;

2)构建 Java 项目

以上的脚本语言已经使用了 Java 插件,在IDEA中创建后的文件目录如下:
1
project          
2
     build      //存放构建输出
3
     src            
4
    |    main         //存放源代码和资源   
5
    |   |     java        //源代码
6
    |   |     resources   //项目资源
7
    |    test       //存放测试代码和资源
8
    |         java
9
    |         resources
10
      build.gradle    //构建脚本
11
      settings.gradle
Gradle 构建脚本提倡约定大于配置,以下是 Gradle Java 插件的一些
默认会从 src/main/java 搜寻打包源码,在 src/test/java 下搜寻测试源码。
所有 src/main/resources 下的所有文件按都会被打包,
所有 src/test/resources 下的文件 都会被添加到类路径用以执行测试。所有文件都输出到 build 下,打包的文件输出到 build/libs 下;


Gradle Java 插件本身已经包含大量构建Java项目常用的Task,一些常用的任务如下:
build构建项目,并将 src/main/ 目录下的 class 和资源文件打包clean 删除 build 目录以及所有构建完成的文件。assemble 编译并打包 jar 文件,但不会执行单元测试。一些其他插件可能会增强这个任务的功能。例如,如果采用了 War 插件,这个任务便会为你的项目打出 War 包。check 编译并测试代码。一些其他插件也可能会增强这个任务的功能。例如,如果采用了 Code-quality 插件,这个任务会额外执行 Checkstyle。

可以在命令行定位到 build.gradle  所在目录,运行 "gradle tasks" 查询所有可用的 task;
调用这些 task 时,运行"gradle taskName" 即可(如调用 build 任务:“gradle build”);

如果使用 IDEA 环境,可以直接在界面右侧的 Gradle 面板直接调用这些 task;

 
将 Java 项目打包为 Jar ,只要运行 “gradle jar”或者直接在gradle面板中点击 jar 即可,打包的 jar 会输出到 build/libs 目录下;


3)构建 Java Web 项目

构建 Java Web 项目和构建一般的 Java 项目类似,在 IDEA 创建 Gradle 项目时勾选【Web,Java】选项,创建后得到的目录一般如下:
IDEA 默认情况下,WEB-INF 会创建到 .idea 目录下,可以通过以下的方法添加 WEB-INF 和 web.xml :
打开【Project Struct】界面,按如以下添加 web.xml ,在弹出的界面中将 web.xml 的路径修改为 " 项目路径 \src\main\webapp\WEB-INF\web.xml ";

 之后得到的项目目录如下:
1
project          
2
     build      
3
     src            
4
    |    main        
5
    |   |     java        
6
    |   |     resources   
7
    |   |     webapp     //web App 目录
8
    |   |          WEB-INF
9
    |   |         |     web.xml
10
    |   |          index.jsp
11
    |    test       
12
    |         java
13
    |         resources
14
      build.gradle   //构建脚本
15
      settings.gradle


build.gradle 基本的构建脚本如下:
1
group 'site.assad'
2
version '1.0'
3
4
apply plugin: 'java'   //使用Java插件
5
apply plugin: 'war'    //使用war插件
6
7
sourceCompatibility = 1.8
8
9
repositories {
10
    mavenCentral()
11
}
12
13
dependencies {
14
    testCompile group: 'junit', name: 'junit', version: '4.11'
15
    testCompile group: 'junit', name: 'junit', version: '4.12'
16
}
17
18
war{
19
    archiveName = 'testDemo.war'       //手动配置 war 包名称
20
}
21
注意以上脚本添加了 war 插件,用于将 Java Web 项目打包为 war 包,由于在默认情况下,gradle 会将war包命名为“PoejectName-Project.version.war”的格式(如“testDemo-1.0-SNAPSHOT.war”),可能不太方便调试,所以以上脚本手动配置了war的打包名;

将项目打包为 war 包,只要运行“gradle war”或直接在gradle面板中点击 war 即可,构建后的 war 包输出在“build\libs”路径下;








阅读全文
0 0
原创粉丝点击