私はすべてのプロジェクトの共通プロパティを設定する "general.gradle"ファイルを持っています。 このファイルはgitリポジトリにコミットされており、多くのユーザで共有されています。私がシステムプロパティを追加したいと思い ので、それはsystemProp.http.nonProxyHosts.gradleファイルのgradleシステムプロパティを設定する
よう
なオプションすべてのユーザーに共通になります方法はありますか?
私はすべてのプロジェクトの共通プロパティを設定する "general.gradle"ファイルを持っています。 このファイルはgitリポジトリにコミットされており、多くのユーザで共有されています。私がシステムプロパティを追加したいと思い ので、それはsystemProp.http.nonProxyHosts.gradleファイルのgradleシステムプロパティを設定する
よう
なオプションすべてのユーザーに共通になります方法はありますか?
あなたはそうのように、systemProp
、そのファイルから、その後general.gradle
負荷の性質によって接頭辞があり、システムのプロパティを追加、general.properties
のように、別のファイルを作ることができます:
FileInputStream fileInputStream = new FileInputStream(new File('{YOUR_PATH}/general.properties'))
Properties properties = new Properties()
properties.load(fileInputStream)
fileInputStream.close()
properties.stringPropertyNames().forEach({key -> ext.set(key, properties.getProperty(key))})
してからルートにそれをロードしbuild.gradle
プロジェクト内のファイル:
apply from: '{YOUR_PATH}/general.gradle'
ext
プロパティから取得できます。この例の後に、general.properties
をプロジェクトに追加して追加します(例:spring=dev
)。
task testProp << {
String profile = getProperty('spring')
System.setProperty('Spring.profiles.active', profile)
String prop = System.getProperty('Spring.profiles.active');
println prop
}
は、タスクの実行が
dev
をプリントアウトする必要があります:あなたは
build.gradle
でこのようなタスクを追加する場合、あなたは、
general.gradle
で財産ローディングコードを入れて、あなたの
build.gradle
でそれを適用します。
説明してください - 最初の部分をどのように実行すればよいですか? properties.stringPropertyNames()。forEach({key - > ext.set(key、properties.getProperty(key))})は何ですか? –
だからあなたは本当にそれを実行する必要はありません。プロジェクトにgeneral.propertiesファイルを置くだけです。このコードをgeneral.gradleに入れて、build.gradleファイルにgeneral.gradleを適用すると、手動で何も実行する必要はありません。 gradleはあなたのためにそれを実行し、forEachステートメント、 'ext'値のキーと値のペアを使用して、あなたのgradleタスクで使用することができます。実際には、私はまだこの答えを使用できる方法で修正すべきだと思います。私にそれをさせてください。 – OlgaMaciaszek
お返事ありがとうございました! –
あなたはdon'tに理由がありますか?そのためにgradle.propertiesファイルを使用したいのですが、プロジェクトにコミットしてもらえませんか? – OlgaMaciaszek
私たちが使用する方法は少し異なります - 共通のグラデルプロパティを持つ共通のプロジェクトがあります。各ユーザーのホームフォルダに保存されているgradle.propertiesファイルは一般的ではありません。 いくつかのgeneral.gradleファイルでプロパティを設定する理由は、すべてのプロジェクトに伝播するということです。 –