Java插件
Gradle 对java的支持,是通过插件实现的。Java 插件是基于合约的,
这意味着插件已经给项目的许多方面定义了默认的参数,
比如 Java 源文件的位置. 如果你在项目里遵从这些合约,那么只需要很少的配置。
引入java插件
apply plugin: 'java'
或者
plugins {
id 'java'
}
然后就可以使用插件中的任务了。java 插件在项目中添加许多任务。通常只会用到其中的一小部分任务。常用的任务有
- build 编译和测试代码,生成jar包
- clean 清除build生成的文件
- assemble 编译打包代码,但是不运行测试
- check 编译和测试代码
指定仓库
// maven 仓库
repositories {
mavenCentral()
}
引入依赖
dependencies {
// 编译阶段
compile group: 'commons-collections'
// 测试阶段
testCompile group: 'junit', name: 'junit', version: '4.12'
}
定制操作
java 插件给 项目添加了一些默认属性,并赋予了初值。当然也可以根据自己的需求改变值
查看默认属性:
gradle properties
声明当前的jdk版本和指定当前项目的版本:
sourceCompatibility = 1.5
version = '1.0'
jar {
manifest {
attributes 'Implementation-Title': 'Gradle Quickstart', 'Implementation-Version': version
}
}
测试阶段添加系统属性:
test {
systemProperties 'property': 'value'
}
发布jar 文件
uploadArchives {
repositories {
flatDir {
// 指定生成jar包的位置
dirs 'repos'
}
}
}
一个完整的java构建脚本
apply plugin: 'java'
apply plugin: 'eclipse'
sourceCompatibility = 1.5
version = '1.0'
jar {
manifest {
attributes 'Implementation-Title': 'Gradle Quickstart', 'Implementation-Version': version
}
}
repositories {
mavenCentral()
}
dependencies {
compile group: 'commons-collections', name: 'commons-collections', version: '3.2'
testCompile group: 'junit', name: 'junit', version: '4.+'
}
test {
systemProperties 'property': 'value'
}
uploadArchives {
repositories {
flatDir {
dirs 'repos'
}
}
}
多项目构建
项目目录结构如下:

step1: 在idea中,通过new Module或者import Module 给工程添加模块,、
然后修改最外层的setting.gradle 声明 项目包含的模块,
setting.gradle 如下:
include "common", "gradle-java"
step2: 添加公共配置
公共配置中的配置项,可以应用到子项目中,公共配置中申明和添加的依赖项,子项目可以不再声明和添加
build.gradle 如下:
subprojects {
apply plugin: 'java'
repositories {
mavenCentral()
}
dependencies {
testCompile 'junit:junit:4.11'
}
version = '1.0'
jar {
manifest.attributes provider: 'gradle'
}
}
配置完成之后,就可以在根目录下使用gradle的命令,编译,测试 所有的模块
项目之间的依赖
如果A模块依赖B模块,那么我们可以再A模块的build.grade 中添加如下,来使得,B模块先于A模块进行编译
。只需要在依赖中。
dependencies {
compile project(':B')
}
项目代码git地址:
git代码地址
本文介绍如何使用Gradle的Java插件进行项目构建,包括引入插件、配置依赖、定制操作及多项目构建等核心内容。
4425

被折叠的 条评论
为什么被折叠?



