2012-03-31 9 views
4

uploadArchivesとは異なる別のアップロードタスクを使用して、ローカルMavenリポジトリに2番目のjarファイルセットを公開できないようです。ここに私のセットアップがあります:複数の設定から成果物をgradleでmavenにアップロード

上記は期待通りです。それから私はgradle uploadArchivesを実行する追加のconfiguration

configurations{ 
    guiceArchives 
} 

task guiceJar(type: Jar){ ... } 

task guiceSourcesJar(type: Jar){ ... } 

artifacts{ 
    guiceArchives guiceJar 
    guiceArchives guiceSourcesJar 
    //archives guiceJar 
    //archives guiceSourcesJar 
} 

はOKに動作しているが、何もgradle uploadGuiceArchivesん:

:core:guiceClasses UP-TO-DATE 
:core:guiceJar UP-TO-DATE 
:core:guiceSourcesJar UP-TO-DATE 
:core:jar UP-TO-DATE 
:core:sourcesJar UP-TO-DATE 
:core:uploadArchives 

BUILD FINISHED 

個々guiceJarguiceSourcesJarタスクが自分で正常に動作しない、とguiceArchivesコンフィギュレーションの内容をプリントアウトも明らかにそのジャーは正しくアーティファクトとして含まれています。

Iみました一時的にそれを言って文句を言わせarchivesの構成にguiceJarguiceSourcesJarを割り当てる:

A POM cannot have multiple artifacts with the same type and classifier. 

正確に何であるかmanual saysを。だから私は、問題の原因であったのがこのアーティファクトの衝突であると仮定しました。

マニュアルが示唆するように、私は偉大な仕事をされますがguiceJarguiceSourcesJararchivesに割り当てられているときにのみ、addFilterを使用して、それを修正しました。 guiceArchivesに割り当ててgradle uploadGuiceArchivesを試しても、何もしません。

アップロードタスクが異なる複数の成果物をアップロードする方法はありますか?

ソリューション:

ここ@Peter Niederwieserが提供するソリューションと更新です。

ただ、この追加:

uploadGuiceArchives { 
    repositories { 
    mavenDeployer { 
     repository(url: project.releaseRepoUrl) 
     snapshotRepository(url: project.snapshotRepoUrl) 
    } 
    } 
} 

注:addFilterが必要とされていませんが。

ありがとうございます!

EDIT2:完全性については

project.releaseRepoUrlproject.snapshotRepoUrl次のようにローカルのMavenリポジトリに設定されています

project.ext{ 
    releaseRepoUrl = "file://${project(':').projectDir}/../mvn-repo/releases" 
    snapshotRepoUrl = "file://${project(':').projectDir}/../mvn-repo/snapshots" 
} 
+0

これは、同じプロジェクトで構成成果物をサポートする正しい方法ですか? – cmcginty

+0

この分野での主要な機能の更新はありませんでしたので、それはまだ有効であり、その最善の方法だと思います。 – rodion

答えて

2

が、それはあなたがあなたのようなuploadGuiceArchivesのためのリポジトリを定義していないということだろうuploadArchivesのためにしましたか?

+0

それはありがとう!私は、リポジトリの設定がタスクごとであるという事実を完全に見落としました。 – rodion

関連する問題