次のようなコマンドライン経由で渡される自己定義バージョンでJARを構築したい
このようにgradleビルドタスクを実行すると:
gradle build -Pversion=1.0
myproject-1.0.jarが生成されます。
build.gradleに以下の行を追加しようとしましたが、うまくいきませんでした:
version = project.hasProperty('version') ? project['version'] : '10.0.0'
コマンドラインから既存のプロジェクトプロパティをオーバーライドすることはできません。一見 here を見てください。したがって、バージョン変数の名前をバージョンとは異なる名前に変更し、-P
次のようなコマンドの前のフラグ:
gradle -PprojVersion=10.2.10 build
そして、あなたのbuild.gradleで
if (project.hasProperty('projVersion')) {
project.version = project.projVersion
} else {
project.version = '10.0.0'
}
または、?:演算子でしたように
プロパティはgradle.properties
ファイルでのみ設定します(つまり、build.gradle
から削除します)。また、オプションがコマンドの前に来ることを確認してください(上記のとおり)。
gradle.propertiesの内容:
version=1.0.12
次に、コマンドラインで次のようにバージョンをオーバーライドできます。
gradle -Pversion=1.0.13 publish
version
エントリをgradle.properties
ファイルに移動すると、次のこともできます。
gradle clean build -Dorg.gradle.project.version=1.1
「未指定」以外のデフォルトバージョンが必要な場合:
version = "${version != 'unspecified' ? version : 'your-default-version'}"
コマンドライン経由でバージョンを渡す:
gradle build -P version=1.0
version = (findProperty('version') == 'unspecified') ? '0.1' : version
build.gradleで設定しない限り、-Pversion=...
を使用してcliでプロジェクトバージョンを渡すことができます。バージョンがCLIに渡されない場合にカスタムのデフォルト値が必要な場合は、gradle.properties fileを次のように使用します:version=...
TL; DR:後でcli経由で変更する場合は、build.gradleファイルにバージョンを設定しないでください。