web-dev-qa-db-ja.com

gradleコマンドラインでバージョンプロパティを渡すことでproject.versionを設定する方法は?

次のようなコマンドライン経由で渡される自己定義バージョンでJARを構築したい

このようにgradleビルドタスクを実行すると:

gradle build -Pversion=1.0

myproject-1.0.jarが生成されます。

build.gradleに以下の行を追加しようとしましたが、うまくいきませんでした:

version = project.hasProperty('version') ? project['version'] : '10.0.0'
24
pat.inside

コマンドラインから既存のプロジェクトプロパティをオーバーライドすることはできません。一見 here を見てください。したがって、バージョン変数の名前をバージョンとは異なる名前に変更し、-P次のようなコマンドの前のフラグ:

gradle -PprojVersion=10.2.10 build 

そして、あなたのbuild.gradleで

if (project.hasProperty('projVersion')) {
  project.version = project.projVersion
} else {
  project.version = '10.0.0'
}

または、?:演算子でしたように

20
Stanislav

プロパティはgradle.propertiesファイルでのみ設定します(つまり、build.gradleから削除します)。また、オプションがコマンドの前に来ることを確認してください(上記のとおり)。

gradle.propertiesの内容:

version=1.0.12

次に、コマンドラインで次のようにバージョンをオーバーライドできます。

gradle -Pversion=1.0.13 publish
45
zeroblaz3

versionエントリをgradle.propertiesファイルに移動すると、次のこともできます。

gradle clean build -Dorg.gradle.project.version=1.1
8
Opal

「未指定」以外のデフォルトバージョンが必要な場合:

version = "${version != 'unspecified' ? version : 'your-default-version'}"

コマンドライン経由でバージョンを渡す:

gradle build -P version=1.0
6
Bian Jiaping

version = (findProperty('version') == 'unspecified') ? '0.1' : version

2
Ajax

build.gradleで設定しない限り、-Pversion=...を使用してcliでプロジェクトバージョンを渡すことができます。バージョンがCLIに渡されない場合にカスタムのデフォルト値が必要な場合は、gradle.properties fileを次のように使用します:version=...

TL; DR:後でcli経由で変更する場合は、build.gradleファイルにバージョンを設定しないでください。

1
Alex