2016-11-23 9 views
0

私はwsimportタスクがwsdlファイルから必要とされるいくつかのjavaファイルを生成しGradle jarタスクはwscleanタスクを実行します、なぜですか?

task wsimport{ 
    .... 
} 

task wsclean { 
    delete "${destDir.path}/com" 
} 

compileJava.source = ["${projectDir}/src/main/java", "${projectDir}/src/main/generated"] 

次のようになります build.gradleファイルを持っています。いつか世代がかかるので、私は瓶を作るかプログラムをコンパイルするたびに実行する必要はありません。

wscleanタスクは、wsdlが変更されたときに使用されることを意味します。

まず、wsimportタスクを実行して、ファイルが正しく生成されていることを確認してください。

しかし、私がgradle jarを実行すると、生成されたファイルが削除されます。どうして?

wscleanタスクをコメントアウトすると、jarタスクは正常に続行されます。なぜgradleはwscleanを呼び出すのですか?

注:私は明示的には私が持ってるjar.dependsOn wsclean

一説jarタスクは*cleanタスクを実行していることであるが作成されませなかった死んだと確信しています。もしそうなら、私はどうしたらそれが起こるのを防ぐのですか?

あなたが

task wsclean << { 
    delete "${destDir.path}/com" 
} 

または

task wsclean { 
    doLast { 
    delete "${destDir.path}/com" 
    } 
} 

が必要

+1

問題を再現した完全な例を投稿してください。私の推測では、** wscleanタスクを**設定しますが**実行しません**。私。おそらく、実行の代わりにタスクの構成にクリーニングコードを入れます。 –

+0

@JBNizet私はそれを実行しようとしていない、私はそれを実行しようとしていない –

+0

私はそれを理解しています。私が言っていることは、おそらくwscleanタスクの '.....'のように隠されているものにエラーがあることです。設定コードは、起動するタスクが何であれ実行されます。実行コードは、タスクがグラフの一部である場合にのみ実行されます。しかし、私たちはこの仕事について何も知らないので、私たちはあまり話すことができません。 –

答えて

1

代わりの

task wsclean { 
    delete "${destDir.path}/com" 
} 

そうでない場合は、削除がすべてのビルドに起こる構成フェーズの一部として実行され、どのようなタスクが開始されました。 https://docs.gradle.org/current/userguide/build_lifecycle.html

+0

私は今コメントを理解しました! –

関連する問題