0

私は Maven を使用し、外部ライブラリ (すす) を持っています。このライブラリを Maven を使用してプロジェクトに追加し、1 つの uber jar にパッケージ化したいと考えています。

1)ライブラリを追加するには、ローカルリポジトリを使用できます()。

2) 依存関係のある jar を取得するには、shade-plugin などを使用できます。

しかし、最初のステップの依存関係には scope があり、この依存関係は uber jar に追加されないため、一緒には機能しません。

mvn install を実行できることは理解していますが、自分のマシンでしか動作しません。

当初の目標を達成することは可能ですか?

4

1 に答える 1

0

おそらく、最も簡単な解決策は、 Artifactoryのようなローカル (会社?) リポジトリを使用することです。

ただし、それが不可能な場合は、ローカルのプロジェクト内リポジトリを使用して (のように)、それを vcs に保持できます。

<repository>
    <id>in-project</id>
    <name>In Project Repo</name>
    <url>file://${project.basedir}/libs</url>
</repository>

唯一の秘訣は、そのローカル リポジトリにアーティファクト (jar) を取得する方法です。

mvn deploy:deploy-file -Dfile=fooLib.jar  -DgroupId=com.test -DartifactId=fooLib -Dversion=1.0.1 -Dpackaging=jar -Durl=file://pathTo/libRepo -DrepositoryId=in-project

そして、それを他の依存関係として使用するだけです

<dependency>
        <groupId>com.test</groupId>
        <artifactId>fooLib</artifactId>
        <version>1.0.1</version>
</dependency>

system scopeは絶対に使用しないでください。そのような依存関係はシステム内で見つかることが想定されているため、JAR にはバンドルされていません。

于 2015-04-30T19:53:41.660 に答える