2016-03-25 9 views
6

私は、プロジェクト名、アプリケーションバージョン、そしてgradleベースのアンドロイドプロジェクトのメインモジュールのようなプロジェクト関連のデータが必要です。私はプロジェクト、プロパティのような様々なタスクを試してみましたが、私に必要な特定の情報を与えるものはありません。Gradleコマンドからプロジェクトに関連するデータにアクセスする

コマンドラインにgradleを使ってバージョンコード、アプリ名、メインのアンドロイドモジュールを見つける方法はありますか? "BuildConfig" グローバル変数は、あなたが得る使用

+0

コマンドラインから実行したときにバージョンコードとアプリ名を出力するタスクを探していますか?また、 'main android module'とはどういう意味ですか? – Krishnaraj

+0

ソースコードを編集/更新しないでほしいです。 –

+0

あなたはgradleコマンドラインのデータをSETしたりGETしたりできますか? – djodjo

答えて

2

ブールDEBUG

文字列APPLICATION_ID

文字列BUILD_TYPE

文字列FLAVOR

int型VERSION_CODE

文字列VER SION_NAME

例えば: - BuildConfig.APPLICATION_ID

、あなたが

debug { 

      buildConfigField "String", "BASE_URL", '"http://172.16.1.175:8080/api/"' 
      debuggable true 
     } 

のようなのGradleで任意のグローバルデータを定義した場合は、これも

BuildConfig.BASE_URL

+0

私はそれをコマンドラインに入れたい。 –

0

あなたの詳細を取得します値を取得するためにresValueを使用できます

のGradle

defaultConfig { 
      //other config 
      resValue "String","versionCode","1" 

     } 

あなたのクラス

context.getString(R.string.versionCode); 
+0

からコマンドラインに入れない。 –

1

あなたはおそらくそれを行うための独自のカスタムのGradleのタスクを書くことができます。アプリケーションのbuild.gradleにこのコードスニペットを追加します。ここでアンドロイドプラグインを定義し、コンソールから実行します。必要に応じて出力をフォーマットし、ビルドスクリプトから他のデータを使用することができます。

task hello<<{ println("versionCode = ${android.defaultConfig.versionCode}") println("applicationId = ${android.defaultConfig.applicationId}") println("minSDK = ${android.defaultConfig.minSdkVersion}") }

+0

ソースコードを編集したくない –

0

私はそれが合った場合、あなたはコマンドラインから実行される1つの共通のinit Gradleのファイルを作成することができますかわからないので、それはあなたが必要なすべてのデータをプリントアウトソースコードの操作、ではありません。しかし、グラデーション出力は汚れています。

これは、あなたが./gradlew --I /Users/username/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}") 
      }) 
     } 
    }); 
} 

である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 

だから、これは何ができるかでありますもう1つのオプションは、bashでbuild.gradleファイルまたはmanifest.xmlを解析するか、よりクリーンな出力でそれを行う独自のコンソールユーティリティを作成することです。 私は助けてくれることを願っています。

関連する問題