2012-07-16 12 views
13

Gradle Jarタスクを使用せずにjarファイルをビルドします(自分のタスク内でAntタスクを使用する必要があります)。指定したリポジトリにJARをインストールできるようにuploadArchivesを設定するにはどうすればいいですか?Gradle:カスタムJARファイルをMavenリポジトリにアップロードする方法

私は

uploadArchives { 
    repositories { 
     mavenDeployer { 
      // some Maven configuration 
     } 
    } 
} 

artifacts { 
    archives file: file('bin/result.jar') 
} 

でデフォルトのアーティファクトを上書きしようとしたが、私はこの設定は、設定をオーバーライドすることではなく追加を意味し、同じ型と分類子を持つ2つのアーティファクトがないかもしれないというエラーを取得しています。

答えて

20

あなたは正しいです、artifactsクロージャはアーティファクトを与えられた構成(ArtifactHandler APIを参照)に追加することしかできません。

1)hereを説明した(CHを参照してください45.6.4.1 "をプロジェクトごとに複数の成果物")アーティファクトフィルタを追加します。。

は、2つのオプションがあります。あなたがこれを使用する場合は、のようなあなたのarchives設定を宣言してみてください。この方法で

artifacts { 
    archives file: file('bin/result.jar'), name: 'result', type: 'jar' 
} 

あなたのアーティファクトフィルタでは、このような、あなたに何か:

addFilter('result') {artifact, file -> 
    artifact.name == 'result' 
} 

2)独立したMavenのモジュールとしてそれをアップロードします。 result.jarがアップロードする唯一のjarであれば、これは良い解決策かもしれません。

configurations { 
    resultArchives 
} 

uploadResultArchives { 
    repositories { 
    mavenDeployer { 
     repository(url: "same/url/here") 
    } 
    } 
} 

artifacts{ 
    resultArchives file: file('bin/result.jar') 
} 

希望します。

+0

ありがとうございます。後者は私の場合、魅力として働いた。 –

+0

Gradle DSLメソッドが見つかりませんでした 'uploadResultArchive'、私はプラグインmavenを適用しました。他のプラグインが必要です – sver

+1

@sver私は彼が_uploadArchives_ – zaxme

関連する問題