Gradle 插件使用说明
大约 3 分钟约 997 字
Gradle插件使用说明
version-catalog
帮助开发者管理项目中的依赖版本,通过生成版本目录,开发者可以更方便地管理和使用依赖。
使用
1. settings.gradle.kts 添加插件
# 后续稳定放置 init.gradle.kts 项目更清爽
pluginManagement {
repositories {
mavenLocal()
maven { // 因插件未发布到gradle插件中心 需要设置插件库
url = uri(providers.gradleProperty("companyNexusRepositoryUrl").get())
isAllowInsecureProtocol = true
credentials {
username = providers.gradleProperty("companyNexusUsername").get()
password = providers.gradleProperty("companyNexusPassword").get()
}
}
gradlePluginPortal()
}
}
plugins {
id("org.aikero.gradle.plugin.version-catalog") version ("latestVersion")
}2. 配置版本信息
一般配置
versionCatalogConf {
artifactVersion = "2.0.0" // 定义toml版本即可
}在这个配置中,artifactVersion 是用来定义 TOML 版本的。
完整配置
versionCatalogConf {
useLocalFile = true // 是否使用本地文件 一般都不需要 只有在本地调试 或者是维护toml的本地工程才需要
artifact = "team.aikero.blade:blade-catalog" // 依赖的artifact
filePath = "/path/to/libs.versions.toml" // 本地文件路径 默认为gradle/libs.versions.toml 这个路径gradle会自动解析 所以artifactCatalogGen要设置为false
artifactVersion = "2.0.0" // 版本号 toml
artifactCatalogName = "commonLibs" // catalog别名 toml里catalogs的catalog别名 在项目里使用的时候的名称 一般的不要修改 不然后期所有服务都要修改
artifactCatalogGen = true // 是否生成目录 toml文件是否生成catalog
// 下面是内置的几个catalog配置
springBoot {
enabled = true // 是否启用 默认启用
libAlias = "spring-boot-dependencies" // 依赖别名 toml里libraries的依赖别名
catalogName = "springBootLibs" // catalog别名 toml里catalogs的catalog别名 使用依赖的时候的访问器对象名称
}
springCloud {
enabled = true
libAlias = "spring-cloud-dependencies"
catalogName = "springCloudLibs"
}
springCloudAlibaba {
enabled = true
libAlias = "spring-cloud-alibaba-dependencies"
catalogName = "springCloudAlibabaLibs"
}
}在这个完整的配置中,我们可以看到以下几个部分:
useLocalFile:是否使用本地文件。一般都不需要,只有在本地调试或者是维护 TOML 的本地工程才需要。artifact:依赖的 artifact。filePath:本地文件路径。默认为gradle/libs.versions.toml,这个路径 Gradle 会自动解析,所以artifactCatalogGen要设置为 false。artifactVersion:版本号,对应 TOML 文件中的版本号。artifactCatalogName:catalog 别名,对应 TOML 文件中 catalogs 的 catalog 别名。artifactCatalogGen:是否生成目录,对应 TOML 文件是否生成 catalog。
此外,还有几个内置的 catalog 配置,包括 springBoot、springCloud 和 springCloudAlibaba,每个配置中都包含了 enabled、 libAlias 和 catalogName 三个属性。
common-conf
提供项目的一些通用配置
- 为所有 Java 编译任务设置文件编码为 UTF-8,确保源代码中的字符在编译过程中正确处理。
- 为生成 Javadoc 的任务设置文件编码为 UTF-8,确保文档中的字符正确生成。
- 为所有 Kotlin 编译任务设置 JVM 目标版本,这个版本是从项目的属性中读取的。
- 为项目生成源代码 JAR 包
- 设置 Java 源代码兼容性版本
- 设置 Java 目标兼容性版本
总的配置见CommonConfPlugin.kt
使用
在build.gradle.kts中添加插件ID即可
plugins {
alias(libs.plugins.publish.conf)
// 或者 id("org.aikero.gradle.plugin.common-conf") version ("latestVersion")
}可选择配置是否生成javadoc
commonConf {
withSourcesJar: Boolean = true # 是否生成源码jar包 默认为true
javaVersion: String = "11" # java版本 默认为11
}publish-conf
- 自动添加
maven-publish插件 - 配置默认的java发布配置
- 配置NEXUS仓库
总的配置见PublishConfPlugin.kt
使用
在build.gradle.kts中添加插件ID即可
plugins {
alias(libs.plugins.publish.conf)
// 或者 id("org.aikero.gradle.plugin.publish-conf") version ("latestVersion")
}配置
在一些业务服务中 service-fatjar不需要上传nexus 可以配置不需要上传配置 但是需要nexus配置
publishConf {
confMavenPublication = false
}