2024-07-01
一言
欲买桂花同载酒,荒泷天下第一斗。 --- 《原神》 · 鱼鱼
今天看了一下gradle-jooq-plugin的源码来学习一下gradle和gradle插件
settings.gradle
备注
因为不打算使用 Gralde Enterprise
,所以忽略了相关配置
这段代码是一个Gradle配置文件,主要用于配置缓存设置。下面是对每一部分的详细讲解:
plugins {
id 'org.gradle.toolchains.foojay-resolver-convention' version '0.8.0'
}
这一部分是插件声明
org.gradle.toolchains.foojay-resolver-convention
:用于工具链解析的插件。
buildCache {
local {
enabled = true
}
}
这一部分是构建缓存的配置:
local { enabled = true }
:启用了本地缓存。
rootProject.name = 'gradle-jooq-plugin'
最后一行设置了根项目的名称为 gradle-jooq-plugin
。
gradle.properties
gradle.properties
文件是Gradle项目的配置文件,用于定义全局属性和设置。这些设置可以影响整个构建过程的行为。具体来说,这个文件中定义的三个属性的作用如下:
-
org.gradle.caching=true
- 作用:启用构建缓存。
- 详细说明:构建缓存可以显著加快构建速度,通过存储和重用以前构建过的任务的输出结果。如果某些任务的输入和环境没有变化,Gradle可以直接使用缓存中的结果,而不需要重新执行这些任务。
-
org.gradle.parallel=true
- 作用:启用并行构建。
- 详细说明:并行构建允许Gradle同时执行多个独立的任务,这样可以充分利用多核处理器的性能,缩短构建时间。这对于大型项目尤为有用,可以显著提高构建效率。
-
org.gradle.jvmargs=-Duser.language=en -Duser.country=US -Dfile.encoding=UTF-8
- 作用:配置JVM参数。
- 详细说明:这行设置了JVM的启动参数,具体包括:
-Duser.language=en
:设置语言为英语。-Duser.country=US
:设置国家为美国。-Dfile.encoding=UTF-8
:设置文件编码为UTF-8。
- 影响:这些设置确保构建过程使用统一的语言、区域设置和文件编码,避免由于不同的语言、区域设置或文件编码导致的构建问题或结果不一致。
总结来说,这些设置是为了优化构建性能和确保构建环境的一致性。启用构建缓存和并行构建可以加快构建速度,而统一 的JVM参数设置则可以确保构建过程中的一致性和稳定性。
提示
org.gradle.caching
和 org.gradle.parallel=
默认都是 false
build.gradle
这段代码是一个Gradle构建脚本,用于配置一个Java Gradle插件项目。以下是详细讲解:
插件声明
plugins {
id 'java-gradle-plugin'
id 'com.gradle.plugin-publish' version '1.2.1'
id 'org.nosphere.gradle.github.actions' version '1.4.0'
id 'groovy'
}
java-gradle-plugin
: 用于开发Gradle插件的插 件。com.gradle.plugin-publish
: 用于发布Gradle插件的插件。org.nosphere.gradle.github.actions
: 用于在GitHub Actions中使用Gradle的插件。groovy
: 添加对Groovy语言的支持。
项目属性
group = 'nu.studer'
version = '9.0.1-DEV'
group
: 项目的组 织标识。version
: 项目的版本号。
配置依赖解析策略
configurations.all { Configuration c ->
c.resolutionStrategy.eachDependency { DependencyResolveDetails details ->
if (details.requested.group == 'jakarta.xml.bind' && details.requested.name == 'jakarta.xml.bind-api') {
details.useVersion '3.0.1'
}
}
}
- 强制将
jakarta.xml.bind:jakarta.xml.bind-api
依赖的版本设置为3.0.1
。
仓库配置
repositories {
mavenCentral()
}
- 使用
Maven Central
作为依赖的仓库。
依赖声明
dependencies {
api 'org.jooq:jooq-codegen:3.19.1'
runtimeOnly 'org.glassfish.jaxb:jaxb-core:3.0.2'
runtimeOnly 'org.glassfish.jaxb:jaxb-runtime:3.0.2'
testImplementation 'com.h2database:h2:2.2.224'
testImplementation 'org.spockframework:spock-core:2.3-groovy-3.0'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}
api
: 编译时和运行时都需要的依赖。runtimeOnly
: 仅在运行时需要的依赖。testImplementation
: 测试时需要的依赖。testRuntimeOnly
: 仅在测试运行时需要的依赖。