6

Teamcityによって実行されるGradleスクリプトのビルド番号とVCSチェックアウト番号にアクセスするにはどうすればよいですか?

Antではそれぞれ${build.number}とを使用できます${build.vcs.number.1}

ありがとうございました。

4

4 に答える 4

6

これらは、TeamCityがAnt /GradleJVMに設定するJVMシステムプロパティにすぎません。たとえば、通常のJava手段でそれらにアクセスできますSystem.getProperty("build.number")

于 2012-06-26T13:40:43.943 に答える
0

Androidアプリケーションを開発している場合は、build.numberそれに応じてapkファイル名を更新するためにアクセスできます。

 defaultConfig {
    applicationId "com.mydemoci"
    minSdkVersion 14
    targetSdkVersion 23
    versionCode 1
    versionName "0.7"

    ext.buildNumber = System.getProperty("build.number") ?: "Regular"
    archivesBaseName = "$applicationId-v$versionName-b$buildNumber"
 } 

ローカルでテストするには、実行するだけですgradlew clean build -Dbuild.number=123

于 2015-12-04T09:49:35.253 に答える
0

TeamCity 9.1.5以降、これは変更されています。「プロパティ」(「system」と「teamcity」の両方)プロパティは、プロジェクトのextプロパティとして設定されます。

https://confluence.jetbrains.com/display/TCD9/Defining+and+Using+Build+Parameters+in+Build+Configuration

概要ページhttps://confluence.jetbrains.com/display/TCD9/Configure+Build+Parameters#ConfigureBuildParameters-ConfigurationParametersを読むと、非常に混乱します。 「システム」(「システムプロパティ」内)を使用すると、次のように設定されていると思いました。 JVMシステムは適切であるため、ここで説明するようにGradleメカニズムを試しました:https : //docs.gradle.org/current/userguide/build_environment.html「org.gradle.project」を使用するように指示します。..「システム」を使用するように言うTeamCityでそれを追加します。gradleプロパティ「repositoryUrl」を「system.org.gradle.project.repositoryUrl」として設定しようとしました...これは機能しませんでした。「プロパティ」の追加

試行錯誤の末、私は明らかなことに遭遇しました...そしてそれをドキュメントのバグとして報告しようとしていました..しかしそれからドキュメントでそれを見つけました

概要:TeamCity9.1.5以降では

system.<propertyName>

例えば

system.repositoryUrl 

Gradleでは、これらはrootProject(またはプロジェクト)の「プロパティ」(「システムプロパティ」ではない)としてアクセスできます...例:

println repositoryUrl 
println project.repositoryUrl
println rootProject.repositoryUrl
println project.properties["repositoryUrl"]
println rootProject.ext.repositoryUrl
println "${repositryUrl}"
assert  hasProperty("repositoryUrl")

そして同じことをする500の他の方法。

于 2016-02-22T00:49:04.057 に答える
0

私は多くの場合、gradleとbuild.number外部変数の注入をテストしました。私の場合、ビルド環境としてdockerを使用しているため、teamcityが提供する環境が正常に注入されません。

gradleに変数を挿入する方法は2つあります。-D以下の例と-Pの違いに注意してください。

// 1. gradle build -Pbuild.number=555
aaa = rootProject.properties.get("build.number") 

// 2. gradle bulid -Dbuild.number=444
bbb = System.getProperty("build.number")

gradle --help[option] taskコマンドオーダーとして言いますが、task [option]機能します。

build.gradleスクリプトの例は次のとおりです。

ext {
    buildNumber = (rootProject.properties.get("build.number") as Integer) ?: 1
}

android {

    defaultConfig {
        versionCode project.buildNumber
        versionName "1.3.7." + project.buildNumber.toString()
    }

私の場合、build.numberAndroidのversionCodeとして使用したいので、:?null処理では整数への解析が必要です。

于 2018-03-22T07:23:13.470 に答える