2015-01-13 8 views
7

私はいくつかのサブプロジェクトを持つマルチプロジェクトビルドを持っています。私はgradleラッパーを使いたいと思います。サブプロジェクトでのグラッドラッパー(./gradlew.sh)の使用

これを行うにはどのような慣習的な方法がありますか?

ルートのbuild.gradleに次のコードを追加して、すべてのサブプロジェクトにラッパーを構成する必要がありますか?

allprojects { 
    task wrapper(type: Wrapper) { 
     gradleVersion = '2.2' 
    } 
} 

しかし、その後、私はすべてバージョンコントロールにサブディレクトリからすべてのgradlew.batgradlew.shgradle/wrapper/gradle-wrapper.jar、などのファイルをチェックしますか?それは非効率的だと思われますが、私がしなければ、サブプロジェクトのディレクトリに./gradlew.shをどうやって実行できますか?サブプロジェクトにgradleラッパーを使用する好ましい方法は何ですか?

この場合、開発者はファイルシステムにインストールされているgradleを使用していますか?

最も重要な質問は、最初のものです:これを行う慣用方法は何ですか?あなただけallprojectsの外ラ​​ッパータスクを持っている必要があり

答えて

7

はそうあなただけのプロジェクト構造の最上位に1 gradlew.batgradlew.sh、およびgradle/wrapper/gradle-wrapper.jarを持ってブロックします。

あなたは、サブプロジェクトのタスク

を見ることができるラッパーを確認するために ./gradlew tasks --allを実行することができますそれとも、ただ1サブプロジェクトのタスクを表示する ./gradlew <subproject_name>:tasksコマンドを実行することができます。

+1

これを行うには、これは慣用的な方法ですか?そして、サブプロジェクトディレクトリにある間にラッパーを使ってタスクを実行するという問題に対する慣用的な解決法はありますか? – Jason

+0

サブプロジェクトディレクトリからラップを呼び出すには、../gradlewを実行してください。 これは慣用的な方法であるかどうかを他の人に伝えます。それは私が少なくともそれをやる方法です。 – jeffl8n

+7

これは正しい方法です。さらに、 'PATH'にhttps://github.com/cbeams/dotfiles/blob/home/bin/gradleのようなサードパーティ製の' gradle(w) 'スクリプトを置くことで、'本当の '親ディレクトリ内の「gradlew」スクリプト次に、 '。/ gradlew'や' ../gradlew'の代わりに 'gradlew'を書くことができます。 –

関連する問題