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

猜你喜欢

转载自blog.csdn.net/zhou164200/article/details/82801439
今日推荐