gpt4 book ai didi

gradle - 为什么gradle publish运行最后一个任务

转载 作者:行者123 更新时间:2023-12-03 05:27:41 26 4
gpt4 key购买 nike

以下是相关的build.gradle片段

version = '0.0.25-SNAPSHOT'
publishing {
repositories {
mavenLocal()
}

publications {
maven(MavenPublication) {
groupId = group
artifactId = 'xyz-abc'
version = version
from components.java
}
}
}

task incrementSnapshotVersion {
String jVersion = version
int snapshotSuffixBegin = jVersion.lastIndexOf('-')
String currentMinor = jVersion.substring(jVersion.lastIndexOf('.') + 1, snapshotSuffixBegin)
String updatedMinor = (Integer.parseInt(currentMinor) + 1).toString()
String major = jVersion.substring(0, jVersion.lastIndexOf(currentMinor))
String newVersion = major + updatedMinor + "-SNAPSHOT"
String s = buildFile.getText().replaceFirst("version = '$jVersion'", "version = '" + newVersion + "'")
buildFile.setText(s)
}

在执行以下命令时, /home/user/gradle-5.1.1/bin/gradle clean buildincrementSnapshotVersion任务也正在运行,并且版本意外更新。
也尝试过 -x incrementSnapshotVersion,但文件中的版本仍然会增加,但是,从build.gradle中删除 incrementSnapshotVersion时,版本保持不变。

最佳答案

现在,将在配置阶段增加版本,这就是为什么每次运行命令时都会增加版本的原因。

您必须将该行为放入任务的 Action 中。

这样,仅当您将使用./gradlew incrementSnapshotVersion执行任务或执行取决于的任务或最终确定任务时,版本才会增加。

task incrementSnapshotVersion {
doFirst {
String jVersion = version
int snapshotSuffixBegin = jVersion.lastIndexOf('-')
String currentMinor = jVersion.substring(jVersion.lastIndexOf('.') + 1, snapshotSuffixBegin)
String updatedMinor = (Integer.parseInt(currentMinor) + 1).toString()
String major = jVersion.substring(0, jVersion.lastIndexOf(currentMinor))
String newVersion = major + updatedMinor + "-SNAPSHOT"
String s = buildFile.getText().replaceFirst("version = '$jVersion'", "version = '" + newVersion + "'")
buildFile.setText(s)
}
}

关于gradle - 为什么gradle publish运行最后一个任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60681278/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com