...プラグインを作成する方法がある場合は、マイナーバージョンではなくメジャーバージョン を増やしてください。
現在、バージョン1.1.0のスナップショットの次のバージョンは から1.1.1のスナップショットに設定されていますが、理想的には 1.2.0スナップショットに変更したいと思います。
ここで説明しているのは、maven-release-pluginが修正版を増やしていて、マイナーバージョンを増分したいということです。バージョンx.y.z
は[majorVersion].[minorVersion].[fixVersion]
を意味します。
私は、これは以下のようにしている解決方法は:
- あなたが説明された方法であなたの
pom.xml
増分からそれをバージョンを選択し、ハドソン文字列としてdevelopmentVersion
とreleaseVersion
を設定しますグルーヴィーなスクリプトを作成します。パラメーター。
- はあなたの仕事のワークスペース仕事に
- にハドソンに
- 場所のGroovyスクリプトをジョブを作成し、「システムのGroovyスクリプトを実行」ステップを構築する - ジョブセットでのGroovyスクリプト
- へのパスを提供"トップレベルのMavenターゲットを呼び出す"ビルドステップを実行し、
developmentVersion
とreleaseVersion
のプロパティを持つmaven releaseコマンドを呼び出します。
ステップ1:
import hudson.model.*
createReleaseAndDevelopmentVersions();
def createReleaseAndDevelopmentVersions() {
def POM_LOCATION = build.parent.builds[0].properties.get("envVars")['WORKSPACE'] + "/pom.xml";
def SNAPSHOT_PART = "-SNAPSHOT";
def projectVersion = findOutCurrentVersion(POM_LOCATION);
def versionParts = projectVersion.tokenize('.');
def mayorVersionPart = versionParts[0];
def minorVersionPart = versionParts[1];
def fixVersionPart = versionParts[2];
def snapshotPartIndex = fixVersionPart.indexOf(SNAPSHOT_PART);
boolean hasSnapshotPart = snapshotPartIndex != -1;
if (hasSnapshotPart) {
fixVersionPart = fixVersionPart.substring(0, snapshotPartIndex);
}
int minorVersion = minorVersionPart.toInteger();
int fixVersion = fixVersionPart.toInteger();
def newFixVersion = 0;
def newMinorRelVersion;
def newMinorDevVersion;
if (hasSnapshotPart) {
newMinorRelVersion = minorVersion;
newMinorDevVersion = minorVersion + 1;
} else {
//TODO: either throw an exception here or change the newMinorRelVersion newMinorDevVersion appropriately to suite your use-cases:
//throw new IllegalArgumentException("The pom at location " + POM_LOCATION + " contains the version " + projectVersion + " which is not a snapshot version (missing " + SNAPSHOT_PART + "). This is a released version and nothing should happen to it!");
}
def releaseVersion = mayorVersionPart + "." + newMinorRelVersion + "." + newFixVersion;
def developmentVersion = mayorVersionPart + "." + newMinorDevVersion + "." + newFixVersion + SNAPSHOT_PART;
createJenkinsVariablesAndAddToCurrentJob(releaseVersion, developmentVersion);
}
def findOutCurrentVersion (POM_LOCATION) {
def thr = Thread.currentThread()
def build = thr?.executable
def projectVersionParam = "projectVersion"
def resolver = build.buildVariableResolver
def projectVersionParamValue = resolver.resolve(projectVersionParam)
return projectVersionParamValue
}
def createJenkinsVariablesAndAddToCurrentJob (releaseVersion, developmentVersion) {
def pa = new ParametersAction([
new StringParameterValue("releaseVersion", releaseVersion), new StringParameterValue("developmentVersion", developmentVersion)
])
Thread.currentThread().executable.addAction(pa)
}
ステップ5(Mavenのコマンド):
clean release:clean release:prepare release:perform -DreleaseVersion=${releaseVersion} -DdevelopmentVersion=${developmentVersion}
乾杯、あなたの答えのための
専制君主
おかげでザック。私はバージョンのプロンプトを表示したくないだけでなく、毎回releaseVersionとdevelopmentVersionを変更して変更する必要はありません。私はちょうどバージョンを自動的に増やす方法があるかどうかを見たいと思う。 -DautoVesrionSubmodulesを使用するとマイナーバージョンが増えますが、メジャーバージョンを増やす必要があります。私は1.1.0から1.2.0へ行きたい – Arya
@Arya実際には '-DautoVersionSubmodules'は自動的にバージョンを選択しません。指定されたバージョンがすべてのモジュールに適用されていることを確認します(それ以外の場合は、それぞれにプロンプトが表示されます)。私は繰り返す、 "何かがあなたのために選んでいる"。もしそれがmavenなら、私はそれがリリースプラグインではないと思います。あなたのハドソン構成に何かがあると思われます。 –