2016-04-29 17 views
1

私のプロジェクトは、Mavenリポジトリにないjarファイルの束に依存しています。私はそれらをファイルの依存関係として宣言することができますが、Gradleの依存関係マネージャを使いたいので、それらをローカルのMavenリポジトリにインストールする必要があります。Gradle:ローカルMavenリポジトリに多数のjarファイルをインストールします

「installFiles」というタスクを作成して「compileJava」を作成することを考えているので、最初に実行され、これらの依存関係はコンパイル前にローカルのMavenリポジトリに表示されます。そして、それらを通常の外部モジュールの依存関係として宣言し、Gradleの依存関係マネージャがそれらを処理できるようにします。

私の質問は、ローカルMavenリポジトリに複数のjarファイルをインストールするにはどうすればいいですか?私が見つけたすべてのドキュメンテーションは、現在のプロジェクトの結果をインストールすることについて話したものであり、いくつかの任意のjarファイルではありません。あなたはこれらの任意のjarファイルを取得している

apply plugin: "maven-publish" 

publishing { 
    publications { 
    maven(MavenPublication) { 
     artifact 'my-file-name.jar' // Publish a file created outside of the build 
    } 
    } 
} 

答えて

1

ただ、ここでは便宜的に見積もりをGradle Documentation

に従ってください? moduleId、groupID、versionなどのPOM情報はどこで入手できますか?

POMを構築してからmavenリポジトリに公開するためにgradleタスクを作成することは可能かもしれませんが、より簡単な解決策は初期公開にmavenを使用することだけです。あなたはちょうどあなたが最後のパラメータを省略した場合、アーティファクトは、あなたがすべき事の達人のsettings.xml

Reference

カップルで宣言されたローカルレポをデフォルトに公開されます

mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file \ 
    -Dfile=path-to-your-artifact-jar \ 
    -DgroupId=your.groupId \ 
    -DartifactId=your-artifactId \ 
    -Dversion=version \ 
    -Dpackaging=jar \ 
    -DlocalRepositoryPath=path-to-specific-local-repo 

このmavenのコマンドを実行することができますこれをしながら考える:

  1. あなたのビルドはローカルマシン上でのみ有効です。ローカルリポジトリにプッシュしているジャーはビルド設定に固有のものなので、プロジェクトはもはや移植性がありません。

  2. あなたのJARが独自の依存関係を持っている場合、上記の答えはPOMの情報を生成しません。あなた自身で追加するか、下流のプロジェクトで推移的な依存関係を手動で管理する必要があります。

+0

OPは、プロジェクトから生成されたパブリッシングアーティファクトを要求していません。 – RaGe

+0

OP質問には正確なリンク先の段落 – Vampire

+0

が返答されます。お詫び申し上げます。あなたが正しい。 – RaGe

関連する問題