2017-07-20 7 views
0

私はアプリケーションをリリースするJenkins CIパイプラインを持っています。このプロセスは、人がアプリケーションのリリースジョブをトリガーする方法で機能します。このジョブは、gradle dependenciesコマンドを使用して、すべてのプロジェクトの依存関係をチェックします。すべての依存関係について、スナップショットリリースジョブが自動的にトリガーされます。 リリースジョブは単純にlib/applicationバージョンをアップグレードし、artifactoryにデプロイします。Gradle - 自動更新依存バージョン

SNAPSHOT依存バージョンを自動的にバージョンをリリースするにはどうすればよいですか?

Properties versions = new Properties() 
versions.load(new FileInputStream(rootProject.projectDir.path + "/version.properties")) 

dependencies { 
    compile("projectA:${versions.projectAVersion}") 
    compile("projectB:${versions.projectBVersion}") 
} 

とversion.properties実際に私はプラグインのバージョンをMavenのに似たものを探しています

projectAVersion=1.1.0-SNAPSHOT 
projectBVersion=1.1.0-SNAPSHOT 

ファイル:

私のbuild.gradleファイルには、次のようになります。

  • build.gradle内のversion numerを自動的にアップグレードすることはできますか?どうやって?
  • さらに厳しいバージョン - バージョンが外部のversion.propertiesファイルにある場合、バージョン番号をアップグレードすることは可能ですか?

EDIT実際に

私はMavenのバージョン・プラグイン必要があります(:使用-リリースおよびバージョン:バージョンを使用-次のリリース)のGradleで機能。

+1

「バージョン番号を自動的にアップグレードする」とはどういう意味ですか? '-SNAPSHOT'を削除するか、直近にリリースされたバージョンを調べて、それを使うか、...? – nickb

+0

'version.properties'が変更されたときに何とかビルドをトリガーしたいですか? – ToYonos

答えて

0

私はあなたの質問で明確ではありません。私が理解したことは、各ビルド後にバージョン値を動的に更新する必要があるということです。

できることは、プロパティ値を取得することです。 -SNAPSHOTを削除します。各ビルド後に1.1.0を増分で更新します。同様に1.1.1、1.1.2など

これはあなたの問題の私のunderstadingが正しい場合、これは、動作します

 task testing { 
     Properties props = new Properties() 
     //getting and loading the property file 
     //Give proper path to file 
     File propsFile = new File('version.properties') 
     props.load(propsFile.newDataInputStream()) 
     //Now strip of -SNAPSHOT and get the last digit and increment it by 1 
      Integer rand = props.getProperty('lastDigit').toInteger()+1 
      String variable=rand.toString() 
     //Append -SNAPSHOT with 'variable and set the property 
      props.setProperty('version',variable) 
      props.store(propsFile.newWriter(), null) 
     } 

によって行うことができます。

関連する問題