2012-06-26 110 views

回答

4

這些僅僅是TeamCity爲Ant/Gradle JVM設置的JVM系統屬性。您可以使用通常的Java方式訪問它們,例如System.getProperty("build.number")

+0

再次感謝 – Paul

+2

請注意,這個答案現在有點過時了,假設在TeamCity中使用「Gradle」runner(隱式應用TeamCity定義的初始化腳本),您現在必須做這樣的事情:'' project.teamcity [「build.number」]'。[查看這個問題的其他細節。](http ://www.stackoverflow.com/questions/20189846/how-can-i-define-the-teamcitybuild-number-property-in-gradle-from-command-li) – superEb

+0

任何想法如何訪問TeamCity VCS中的Android應用程序版本號標籤? – jimmy0251

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

0

由於TeamCity的9.1.5的這個改變。 「屬性」(「system」和「teamcity」)屬性都被設置爲項目ext屬性。

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

閱讀overveiw頁https://confluence.jetbrains.com/display/TCD9/Configuring+Build+Parameters#ConfiguringBuildParameters-ConfigurationParameters使用「系統」的時候很混亂(在「系統屬性」)讓我以爲他們設置爲JVM系統性質在所以我想爲這裏所描述的搖籃機制: https://docs.gradle.org/current/userguide/build_environment.html 它說使用「​​org.gradle.project」。 ..加上TeamCity的說,使用「系統」。我試圖設置gradle屬性「repositoryUrl」爲「system.org.gradle.project.repositoryUrl」... 這沒有奏效。加入「屬性」,在球隊的城市的Gradle命令表明,有一個gradle這個財產被稱爲「org.gradle.project.repositoryUrl」

通過試驗和錯誤我在無意中發現明顯...正要報告這是一個文檔錯誤..但後來發現它在文檔中

摘要:在TeamCity的9.1.5+使用

system.<propertyName> 

system.repositoryUrl 

在搖籃這些accessable爲rootProject(或項目)「屬性」(而不是「系統屬性」 ......如

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

和做同樣的事情的500種其他方式。

相關問題