2017-11-23 8 views
0

非常に大規模なマルチモジュールグラデルプロジェクト(300+モジュール)で作業している間、ビルドツーポイントで使用されるgradle_user_homeのプロジェクト固有のデフォルトを持つ方法を探していますプロジェクトルートの.gradleディレクトリに移動します。私は、そのパスの下にある依存関係のキャッシュと同じように、それ自体はグラブルホーム自体に興味がありません。プロジェクトビルド/設定ファイルを使用してプロジェクト特有のgradle_user_homeを設定する

gradle.propertiesでは何もない、場合、例えばsettings.gradlegradle/wrapper/gradle-wrapper.propertiesbuildSrc下に何かか)私は、SCMにコミットすることができ、プロジェクトツリー自体内のファイル、の設定を経てこれを達成するための方法を探しています。それ以上の手動介入(コマンドラインオプションなし、グローバルgradle.propertiesなど)を必要としない解決策でなければなりません。

これを達成する方法はありますか?

理想的には、プロジェクトのgradle.propertiesの外に配置することが理想的です。ユーザー固有の調整のためにコミットする必要はありません。

systemProp.gradle.user.home=./.gradle 

しかし、可能であれば私は強くgradle.propertiesのこの外側を好む質問で述べたように:(もbuildSrc内のビルドロジックに適用されます)私のために働いていgradle.propertiesプロジェクトに以下を置く

+0

私はあなたの理由がそれをしたいと思っていますか? – Vampire

+0

ビルドに必要なものがすべて含まれている完全にビルド可能なコードベースを提供できる必要があります。さらに、同じビルドサーバー上で複数のビルドを並行して実行する場合の不測の事態:私たちは、gradle cache locksが失敗につながるのを観察しました。 –

+0

ああ、私たちはTeamCityを複数のビルドエージェントで使用し、1人のビルドエージェントは常に1つのビルドのみを並行して実行するので、この問題はありません。 – Vampire

答えて

0

+0

私は、コマンドラインでそれを指定する以外に別の方法はないと思います。多分環境変数を除いて、しかし、これはあなたが望むものではないと思います。 – Vampire

+0

はい、私は 'gradle.properties'ファイルをコミットし、devsがgradleのユーザホームの' gradle.properties'にカスタム設定を入れるようにします。つまり、上記のsetupの 'projectRoot/.gradle'です。 –

+0

'net.saliman.properties'プラグインを見ることもできます。私は 'gradle.properties'に中心的な設定をしており、個々の人は' gradle-local.properties'に自分のものを入れることができます。あるいは、 'gradle- .properties'を、私は' 'をプロジェクトプロパティで設定できます。 Btw。個人的には、自分のGradleユーザーの家がどこにあるのかわからない場合、ビルドのユーザーとして個人的には大嫌いになります。 e。 g。 Gradleがlilbsを何度もキャッシュする必要がある場合はスペースを空けます。私はあなたが実際に問題を抱えているビルドサーバーに対してこれを行うことをお勧めします。 – Vampire

関連する問題