大部分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'
05-11 19:21