4

私は、アクチュエータを有効にしたSpring Boot Webアプリケーションを持っています。私は<app_url>/infoを開くと、私はSpring Boot、Gradle、Semantic Versioning、Jenkinsを使用してアプリケーションバージョンを生成する方法

{ 
    "git": { 
     "commit": { 
      "time": "2016-08-31T17:53:28.000+0000", 
      "id": "0a52a2f" 
     }, 
     "branch": "master" 
    }, 
    "build": { 
     "version": "unspecified", 
     "artifact": "my-app", 
     "name": "my-app", 
     "group": "", 
     "time": "2016-09-02T21:09:42.000+0000" 
    } 
} 

下記参照私は、ここでは、バージョン番号を生成するかどうかはわかりません。セマンティックバージョン管理を使用したいMAJOR.MINOR.PATCH+timestamp+Build_Number

パッケージのビルド情報を保存する一般的なコンセプトは何ですか?パペットが管理しており、アプリケーション戦争の外部にあるので、私はapplication.ymlに保存したくありません。私はそれをJenkinsがいくつかのファイルに生成したいと思っています。そしてSpring Bootはそのファイルからそれを拾い上げることができます。ジェンキンスにspring-boot-gradle-pluginbuildInfoによって生成されるbuild-info.propertiesに書き込ませるべきですか?またはファイルを生成するときにGradle自体でバージョンを生成する必要がありますか? GradleはMAJOR.MINOR.PATCHの詳細をどのように知っていますか?私は、これらすべてをどのように統合するかという考え方が不足しています。

答えて

0

少し遅れましたが、これは私がやっている方法です(うまくいくようです)。

springBoot { 
    buildInfo { 
     additionalProperties = [ 
      "version" : System.properties["version"] != null ? System.properties["version"] : "unspecified" 
     ] 
    } 
} 

、その後、私のジェンキンスパイプライン

./gradlew clean build -Dversion=${MAJOR}.${MINOR}.${PATCH} 

に出力jarファイルは、興味深い方法厥build-info.properties

build.version=1.0.1 
+0

を持つことになります。私はhttps://github.com/researchgate/gradle-releaseを使用しました – TechCrunch

関連する問題