build.gradle中的各字段详解
罗列下build.gradle中常遇到的字段:
allprojects 根目录root和所有子项目
subprojects 所有子项目
buildscript gradle构建本身
configurations.all {
resolutionStrategy {
// cache dynamic versions for 10 minutes // 采用动态版本声明的依赖缓存10分钟
cacheDynamicVersionsFor 0, "seconds"
// don"t cache changing modules at all
cacheChangingModulesFor 0, "seconds" //每隔10分钟检查远程依赖是否存在更新
}
}
dependencyManagement 并不会下载依赖jar包,定下标准。当dependencies没有指定版本时,优先使用。
dependencies 直接依赖,会下载jar包
repositories {
jcenter()
maven {
url "http://xxxxxxx"
}
}
远程依赖库,jcenter()是公有的, url “http://xxxxxxx” 是公司私服。
sourceSets {
main {
java {
srcDirs = ["src/main/java", "src/main/antlr_gen", "src/main/gen"]
}
resources {
srcDirs = ["src/main/resources"]
}
}
}
代码路径,默认src/main/java 和 src/main/resources
mavenBom 由maven标准规定,无须指定版本,统一使用标准版本。
sourceCompatibility jdk编译版本
我们在使用JPA动态查询构建查询条件时,为了实现安全的类型检查,常常需要引用Hibernate JPA Metamodel Generator
自动为我们生成静态元模型类。而这些类由于编译时由Hibernate JPA Metamodel Generator自动生成在其他路径下,
IDEA默认无法自动识别这些“特别”的类,所以IDEA中的JPA动态查询相关代码常常会出现编译错误。
如果你使用的是Gradle构建工具,只需在构建脚本中添加如下内容即可解决此类问题啦。
// 所有自动生成的代码(比如JPAMetaModelEntityProcessor自动生成的代码等)都统一存放到build/generated目录下
// 同时将该目录添加到main SourceSets中,以便IDEA可以识别
compileJava {
options.compilerArgs << "-s"
options.compilerArgs << "$projectDir/build/generated"
doFirst {
file(new File("$projectDir/build/generated")).mkdirs()
}
}
sourceSets.main.java.srcDirs += "$projectDir/build/generated"
idea {
module {
downloadSources = true
}
}
自动下载sources和Javadocs
task createWrapper(type: Wrapper) {
gradleVersion = '4.10'
}
gradle createWrapper可以生成gradlew文件。
bootRepackage任务,它的作用是重新打包jar为可执行的jar
上一篇: java 核心学习笔记(四) 单例类
下一篇: 使用Gradle下载依赖包