1

特別な設定/プロパティファイルからいくつかの秘密のプロパティ(apiキー、パスワード)を読み書きするためのグラデーション関数/ ?秘密(APIキー、パスワード)のプロパティ(AndroidプラグインからbuildConfigFieldなど)を読み取るためのプラグイン

android { 
    buildTypes { 
     debug { 
      buildConfigField "String", "API_KEY", apiKey 
     } 
    }  
} 

とIn:プロジェクトbuild.gradleよりも

apiKey=SUPER_SECRET_VALUE

:あなたは〜/ .gradle/gradle.propertiesファイルのプロパティを設定することができます

For instance, in android pluginプロジェクトそのものはBuildConfig.API_KEY文字列定数を使用します。

他の(java)プロジェクトでもgradleに類似のソリューションがありますか?

また、この方法が間違っていて、他の回避策を使用する必要がありますか?

答えて

1

いつでもfilter filesにすることができます。リソースまたはソースファイルをコピーコマンドで渡し、@[email protected]filterReplaceTokens)または${API_KEY}expandを使用)のようなトークンをグレー変数に置き換えます。例えば

processResources { 
    filter(ReplaceTokens, tokens: [API_KEY: apiKey]) 
} 

は、あなたのリソースファイルのいずれかであなたの実際のAPIキーでサブ@[email protected]を置き換えます。

+0

古い学校のAnt-Mavenソリューションのように見えますが、私は現代的で現実的なものを探しています – radistao

+0

これは古い学校だと思う以外は特にこのソリューションについて気に入らないものは何ですか? Androidはおおよそ同じことをしています。唯一の違いは、Androidのソースコードが生成されているように見えることです。一方、 'filter'はリソースを変更するだけです。この手法を使ってJavaファイルの値を置き換えることさえできます。 –

+0

このソリューションでは、私は正確にこれが好きではありません: "Androidのソースコードを生成し、フィルタはリソースを変更するだけです" – radistao

0

これまでの回答の代わりに、CodeModelを使用するカスタムのGradleタスクを作成することができます。 Hereの例です。

関連する問題