2011-12-12 4 views
8

私はuploadArchivesがJavaプラグインによって提供されるタスクだと思っていました。私のbuild.gradleで iは、Javaプラグインを使用します。uploadArchivesがタスクリストに表示されないのはなぜですか?

apply plugin: 'java' 

をしかし、私は、コマンドラインでgradle tasksを起動した場合、私はuploadArchivesタスクを見ることができません。 Gradleのgradle tasks --all

でuploadArchivesタスクはGradleのJavaプラグインのマニュアルに記載されて

さえない はhttp://www.gradle.org/java_plugin(表11)を参照してください。

私はGradleのバージョン1.0-マイルストーン-6を使用します。

私はエラーなしgradle uploadArchivesを呼び出すことができますが、タスクがリストされていません。

答えて

9

uploadArchivesタスクは、ビルドスクリプトにルールとして追加され、明示的に名前で追加されません。 「Gradleのタスク」の出力では、この行が表示されます。

 
Pattern: upload<ConfigurationName>: Assembles and uploads the artifacts belonging to a configuration. 

これは、ビルドファイル内の各コンフィギュレーション、応じuploadTaskのために存在することを意味します。 javaプラグインは、アーカイブという名前の構成をビルドスクリプトに追加します。ビルドスクリプトにjavaプラグインによって明示的に設定 "archives"を追加することで、uploadArchivesタスクも暗黙的に追加されます。

Gradleのタスクは、ルールによってマテリアライズする必要があるかを知ることができないシナリオがあります。

など。

tasks.addRule("Pattern: ping<ID>") { String taskName -> 
    if (taskName.startsWith("ping")) { 
     task(taskName) << { 
      println "Pinging: " + (taskName - 'ping') 
     } 
    } 
} 

コマンドラインからトリガされたとき、彼らはちょうど私が呼び出すことができる「GradleのpingServer1 pingServer2 pingServer3」

に関して、 ルネ

+0

に私はあなたがGradleの開発者の一人だ...だからこれらの暗示のタスクは、タスクリストに表示されるべきではない。それを知っていますか? – Cengiz

+1

これらのタスクはルールによって適用されます。そのため、通常のタスクリストには表示されず、出力の最下部に表示されます。この理由の1つは、コマンドラインから呼び出されたとき、またはビルドスクリプトで参照されたときに、即座に作成されるということです。 –

+1

ルールのもう1つの例は、 'base'プラグインによって導入された "Pattern clean "です。あなたがcleanCompileJavaを呼び出すと、gradleはその名前のタスクを見つけませんが、既存のタスク(compileJava)の「クリーン」+名前のこのパターンと一致するルールを見つけます。ルールの実装では、作成されたタスク "cleanCompileJava"は、 'compileJava'タスクの出力を削除します。私は、すべての生産的な仕事のすべてのクリーンなタスクの仲間とのタスクの概要を汚染することは意味がないと思う。 –

1

uploadArchivesタスクは達人 - プラグインの一部です。

apply plugin: 'maven' 
+0

を経由してマテリアライズされているようなタスクが示されるべきpingを把握する方法はありません'gradle uploadArchives'をエラーなしに、そしてMavenプラグインなしで実行できます。 – Cengiz

+0

奇妙な;いつもそれがmaven-pluginに属していると考えました。 http://gradle.org/maven_pluginに記載されているように、 'uploadArchives {}'設定を宣言しましたか? – thoredge

+0

それを宣言していないその場合、uploadArchivesは何もしません。ここでは、出力は次のようになります。 ' >のGradle uploadArchives :compileJava UP-TO-DATE :UP-TO-DATE processResources :UP-TO-DATEクラス :瓶UP-TO-DATE : uploadArchives ' – Cengiz