我需要項目相關的數據,如項目名稱,應用程序版本和其基於gradle的android項目的主要模塊。我已經嘗試過諸如項目,屬性等各種任務,但沒有給我提供我需要的具體信息。從Gradle命令訪問項目相關數據
有沒有辦法在命令行中使用gradle查找版本代碼,應用程序名稱和主要的android模塊?
我需要項目相關的數據,如項目名稱,應用程序版本和其基於gradle的android項目的主要模塊。我已經嘗試過諸如項目,屬性等各種任務,但沒有給我提供我需要的具體信息。從Gradle命令訪問項目相關數據
有沒有辦法在命令行中使用gradle查找版本代碼,應用程序名稱和主要的android模塊?
使用 「BuildConfig」 的全局變量,你會得到
布爾DEBUG
字符串APPLICATION_ID
字符串BUILD_TYPE
串味
INT VERSION_CODE
字符串VER SION_NAME
如: - BuildConfig.APPLICATION_ID
,如果你的gradle中定義的任何全局數據像
debug {
buildConfigField "String", "BASE_URL", '"http://172.16.1.175:8080/api/"'
debuggable true
}
你會得到這也
詳情BuildConfig.BASE_URL
我想要它在命令行中。而不是從類 –
你可以使用resValue來獲得價值
搖籃
defaultConfig {
//other config
resValue "String","versionCode","1"
}
類
context.getString(R.string.versionCode);
我想要它在命令行中。而不是從類 –
你也許可以寫出這樣做,自己的自定義任務的gradle。將此代碼片段添加到您的應用程序build.gradle中,在其中定義您的android插件並從控制檯運行它。您可以根據需要格式化輸出,並使用構建腳本中的其他數據。
task hello<<{ println("versionCode = ${android.defaultConfig.versionCode}") println("applicationId = ${android.defaultConfig.applicationId}") println("minSDK = ${android.defaultConfig.minSdkVersion}") }
我不想編輯源代碼 –
我不知道它是否適合,您可以創建一個共同的gradle初始化文件,可以從命令行運行,所以它不是一個源代碼的操作,在這裏你打印出所有必要的數據。但是gradle輸出很髒。
這是init.gradle的片段是在/Users/username
allprojects{
afterEvaluate({//listen for project evaluation
println(project.name)//it is supposed to be 2 projects "ProjName" and "app"
if(project.name.equalsIgnoreCase("app")){//or any other condtion to check if it is inner android project
project.task("getVersion",{
println("versionCode = ${android.defaultConfig.versionCode}")
})
}
});
}
你開始這個劇本就像./gradlew --I /Users/username/init.gradle
這是我作爲一個輸出
music
app
versionCode = 1
:help
Welcome to Gradle 2.4.
To run a build, run gradlew <task> ...
To see a list of available tasks, run gradlew tasks
To see a list of command-line options, run gradlew --help
To see more detail about a task, run gradlew help --task <task>
BUILD SUCCESSFUL
Total time: 6.929 secs
This build could be faster, please consider using the Gradle Daemon: http://gradle.org/docs/2.4/userguide/gradle_daemon.html
所以這可能是什麼完成後,另一個可用選項是在bash中解析build.gradle文件或manifest.xml,或者編寫自己的控制檯實用程序,它將使用更清晰的輸出來執行此操作。 我希望我能幫上忙。
您是否正在查找將從命令行運行時打印版本代碼和應用程序名稱的任務?另外,你的意思是'主android模塊'? – Krishnaraj
我希望它不需要編輯/更新源代碼。 –
你和SET或從gradle命令行獲取數據? – djodjo