大部分Java项目都是相似的,使用Gradle插件,能够抽象出这些步骤,这样就不必为每个Java项目都编写Gradle的project和task了
引入java插件
apply plugin: 'java'
引入java插件后,该插件会为脚本添加内置的任务,可以执行 gradle -q tasks 进行查看,列出任务列表
外部依赖
repositories {
mavenCentral()
}
dependencies {
testCompile group:'junit', name: 'junit', version: '4.12'}
依赖配置
依赖范围
compile:编译期间依赖
runtime:运行和测试的时候依赖,但是编译时期不需要。如 JDBC 驱动
testCompile:测试编译期间依赖
testRuntime:测试运行期间起来
使用Maven中央仓库进行依赖
repositories {
mavenCentral()
}
dependencies {
testCompile group:'junit', name: 'junit', version: '4.11'}
简写依赖
testCompile 'junit:junit:4.12'
使用Maven的远程仓库
repositories {
maven {
url"http://repo.mycompany.com/maven2"}
}
使用Maven本地仓库
repositories {//使用Maven本地仓库
mavenLocal()//使用Maven中央仓库
mavenCentral()
}
采用 Ivy 远程仓库
repositories {
ivy {
url"http://repo.mycompany.com/repo"}
}
采用本地 Ivy 目录
repositories {
ivy {//URL can refer to a local directory
url "../local-repo"}
}
一个项目可以采用多个库,Gradle会按照顺序从各个库中查询依赖文件
引入本地jar
compile files('libs/sigar.jar')
发布
uploadArchives {
repositories {
mavenDeployer {
repository(url:"file:/Users/sherry/WorkPath/maven/repository/")
}
}
}
相当于是Maven中的 mvn install
一个稍微完整的配置
group 'org.zln.learning'version'1.0-SNAPSHOT'apply plugin:'java'apply plugin:'maven'sourceCompatibility= 1.8[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
//仓库配置
repositories {//使用Maven本地仓库
mavenLocal()//使用Maven中央仓库
mavenCentral()
}//依赖配置
dependencies {
compile'org.zln.bdrisk:bdrisk-commons:1.0-SNAPSHOT'testCompile'junit:junit:4.12'}//发布配置
uploadArchives {
repositories {
mavenDeployer {
repository(url:"file:/Users/sherry/WorkPath/maven/repository/")
}
}
}
配置MANIFEST.MF
设置jar的main类
jar{
manifest{
attributes'Main-Class':'com.manning.ToDoApp'}
}
改变默认结构
sourceSets{
main{
java{//设置源代码路径
srcDirs=['src']
}
}
test{
java{//设置测试源代码路径
srcDirs=['src']
}
}
}
设置输出路径
buildDir='out'