2016-03-23 8 views
-1

私は、あなたがビルドするとき(例えば、あなたが 'grale claen'のときではなく)にインターネットを介してソースコードをダウンロードするgradleスクリプトを作りたいと思います。Gradle 2.12(Java用)では、「ビルド」の場合のみソースファイルをダウンロードできますか?

私は基本的にそれを可能にすることができ、ダウンロードは「src」というディレクトリがないだけです。ソースコードをダウンロードするタスクを作った場合、ダウンロードが完了していない可能性があります。 しかし、私はあなたが 'gradle build'するときにスクリプトをダウンロードしたいと思っています なぜccompileJavaのコードをダウンロードするスクリプトを書いているのですか... しかし、そうした場合、ディレクトリ 'src'、 gradleがコードをダウンロードしてから削除します。

私の希望を満たすスクリプトを作成するにはどうすればよいですか?

下記の質問に関連するスクリプト部分です。

compileJava { 
if (!new File('src').exists()){ 
    tasks.downloadZipFile.execute() 
    tasks.downloadAndUnzipFile.execute() 
    file('downloaded/src').renameTo('src') 
    delete 'downloaded' 
} 
} 


clean { delete 'src' } 
+0

あなたが持っているものを投稿してください。 –

+0

compileJava { \t場合(!新しいファイル( 'SRC')。)(存在){ \t \t tasks.downloadZipFile.execute() \t \t tasks.downloadAndUnzipFile.execute() \t \tファイル( 'ダウンロード/ SRCダウンロードした「削除) \t \t ' ').renameTo(' SRC' \t}} クリーン{削除 '}コメントに – kensuke1984

+0

ないがSRC' を。あなたの質問では、適切にフォーマットされます。 –

答えて

1

コードは設定フェーズで実行されます。実行するタスクはすべて実行されます。

gradleがどのタスクをどの順序で実行するかを決定したら、実行フェーズで実行する必要があります。それは compileJava前を実行しなければならないため、タスクを作成し、compileJavaは、そのタスクに依存します:

task downloadSources << { 
    ... 
} 

compileJava { 
    dependsOn downloadSources 
} 

注downloadSourcesで<<。これは、後続のクロージャがタスクの実行の一部として実行され、その構成の一部として実行されないことを意味します。

+0

ありがとうございました。私が欲しかったのは、かなりの答えです。 – kensuke1984

関連する問題