欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

build.gradle中的各字段详解

程序员文章站 2022-04-29 15:10:06
...

罗列下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

相关标签: gradle