は、例えば作業です:
version='1.0.0' //version we need to change
task increment<<{
def v=buildFile.getText().find(version) //get this build file's text and extract the version value
String minor=v.substring(v.lastIndexOf('.')+1) //get last digit
int m=minor.toInteger()+1 //increment
String major=v.substring(0,v.length()-1) //get the beginning
//println m
String s=buildFile.getText().replaceFirst("version='$version'","version='"+major+m+"'")
//println s
buildFile.setText(s) //replace the build file's text
}
は、このタスクを複数回実行すると、あなたはバージョン変更が表示されるはずです。
バリアント:ソリューション以下
version='1.0.0'
task incrementVersion<<{
String minor=version.substring(version.lastIndexOf('.')+1)
int m=minor.toInteger()+1
String major=version.substring(0,version.length()-1)
String s=buildFile.getText().replaceFirst("version='$version'","version='"+major+m+"'")
buildFile.setText(s)
}
ここで 'def v = buildFile.getText()。find(version)'とは何ですか?すぐに 'バージョン'をあなたに与えてくれるのではないでしょうか? – cfrick
はい、これを省略してバージョンを直接参照することはできます。しかし、バージョンが設定されていない場合にビルドが失敗したくない場合は、 'if(v)'チェックをそのタスクに追加することができます。しかし、 'if(version)'チェックを行い、バージョンが設定されていなければ、ビルドは失敗します。 – Alexiy
@Alexity version = '1.0.100' – Sushant