バージョン管理システムでリリース管理を自動化し、関連する成果物を公開したいと考えています。gradle dynamic公開版の計算
そこで私は限り私はタスクの実行中にバージョンプロパティを変更しないと正常に動作するスクリプト(テスト用簡易版)
apply plugin: 'java'
apply plugin: 'maven-publish'
// --- Setup artifactory server repository ---
artifactory_contextUrl="http://vie2rhp02904"
artifactory_user="admin"
artifactory_password="..."
repositories {
maven { url "${artifactory_contextUrl}/libs-release" }
}
// -------------------------------------------
defaultTasks 'doit'
group = 'release-test'
version = "13.7-SNAPSHOT"
// --- Setup publishing parameters ---
publishing.repositories {
maven {
credentials {
username "${artifactory_user}"
password "${artifactory_password}"
}
if (project.version.endsWith('-SNAPSHOT')) {
url "${artifactory_contextUrl}/libs-snapshot-local"
} else {
url "${artifactory_contextUrl}/libs-release-local"
}
}
}
project.publishing.publications {
mavenJava(MavenPublication) {
from components.java
}
}
// -------------------------------------------
task createReleaseVersion << {
println("Version at start: $version")
// Doing release management, which builds a tagged version without the "-SNAPSHOT" phrase
version = "13.7.0"
println("actual version: $version")
}
task doit (dependsOn: ['createReleaseVersion', 'publish']) << {
}
publish.mustRunAfter createReleaseVersion
何もかもを構築し、以下を使用します。 (createReleaseVersionタスクで行われます)
バージョンを変更した場合、JARファイルは正しい名前で作成されますが、パブリッシュは古いバージョンに従って名前を使用する必要があります。
タスクの実行中に計算されたバージョンを使用して公開するにはどうすればよいですか?
Tあなたの答えはハンクスですが、その理由は実行の順序のためです。 しかし、私はこれを回避する方法があることを望んでいます。 これ以降の設定の編集はgradleでは許可されていません。 (既に試してみました) 手動でバージョンを設定しても、この作業の主な理由は自動的に新しいバージョンを計算するためです。 現時点では、gradleを2回呼び出すバッチファイルを使用しています。最初にgradle.propertiesファイルのversionプロパティを更新し、新しいバージョンを使用して残りの作業を行います。 しかし、私はそれを1回の呼び出しで行うことを好むでしょう。 – Horst
@Horst私のif文の中にあなたのタスクのコードを置くことができますか?質問に追加して何が起こっているのかを確認することができます – AdamSkywalker
申し訳ありませんが分かりませんが、どういう意味ですか?私のビルドスクリプトで "gradle doit"を呼び出すことで、私の問題を再現することができます。間違った(最初に設定された)バージョンで公開します – Horst