如何在 Gradle 中创建两个任务
How do I create two tasks in Gradle
我有一个 Java 项目,其中 Gradle 作为构建系统。
我需要创建两个单一用途的 构建任务 ,但具有不同版本的 jar 文件。
具体来说,我需要:
对于 本地计算机中的构建任务 使用 -LOCAL 版本的 .jar(例如 projectName-LOCAL.jar)
用于 GitLab 中的构建任务 CI\CD 系统使用编号版本 (projectName-1.1.1.jar)
GitLab 的版本 CI\CD 来自提交标签,来自 GitLab 预定义的 ENV 变量。
所以,我有一个默认的 build.gradle 文件,其中:
group = 'projectName'
version = 'LOCAL'
sourceCompatibility = '11'
jar {
manifest {
attributes "Main-Class": "projectName.Application"
}
from {
configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}
}
此任务必须在本地计算机上 运行 并创建 projectName-LOCAL.jar。他在做的是。
我如何在另一个任务中使用 numbered 版本实现这一点,特别是对于 GitLab CI\CD?
Gradle 默认将 jar 文件命名为 ${baseName}-${appendix}-${version}-${classifier}.${extension}
.
因此您可以根据条件简单地更改 version
。
像这样的东西应该可以工作:
ext {
isLocal = System.getenv('ENV') == 'LOCAL'
}
jar {
if (isLocal) version = 'LOCAL'
}
对于本地工作,您可以使用 ENV=LOCAL ./gradlew jar
并使用没有 ENV 部分的普通命令用于 GitLab。
我有一个 Java 项目,其中 Gradle 作为构建系统。
我需要创建两个单一用途的 构建任务 ,但具有不同版本的 jar 文件。
具体来说,我需要:
对于 本地计算机中的构建任务 使用 -LOCAL 版本的 .jar(例如 projectName-LOCAL.jar)
用于 GitLab 中的构建任务 CI\CD 系统使用编号版本 (projectName-1.1.1.jar)
GitLab 的版本 CI\CD 来自提交标签,来自 GitLab 预定义的 ENV 变量。
所以,我有一个默认的 build.gradle 文件,其中:
group = 'projectName'
version = 'LOCAL'
sourceCompatibility = '11'
jar {
manifest {
attributes "Main-Class": "projectName.Application"
}
from {
configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}
}
此任务必须在本地计算机上 运行 并创建 projectName-LOCAL.jar。他在做的是。
我如何在另一个任务中使用 numbered 版本实现这一点,特别是对于 GitLab CI\CD?
Gradle 默认将 jar 文件命名为 ${baseName}-${appendix}-${version}-${classifier}.${extension}
.
因此您可以根据条件简单地更改 version
。
像这样的东西应该可以工作:
ext {
isLocal = System.getenv('ENV') == 'LOCAL'
}
jar {
if (isLocal) version = 'LOCAL'
}
对于本地工作,您可以使用 ENV=LOCAL ./gradlew jar
并使用没有 ENV 部分的普通命令用于 GitLab。