2016-07-31 11 views
0

私はプロジェクトにms-data-core-apiライブラリを使用しています。だから私は周りのいくつかの微調整をしてmvn packageを使ってそれを再コンパイルしました。それは私に別の.jarファイルを与え、mvn install:install-fileを使ってインストールしましたので、私のプロジェクトのpomファイルで使うことができました。ここまでは順調ですね。しかし、自分のプロジェクトで使用しようとしたときに、cannot be resolvedの問題がありました。Mavenパッケージは依存関係をグループ化していません

2.0.5 release jarを開梱することで、私の修正は正しく行われませんでしたが、私の中にはすべての依存関係があることに気がつきましたが、私にはコンパイルされたライブラリしかありません。

私はので、私がやったことで、Mavenのを経験していないよ:

  1. が働い2.0.5ジャーコンテンツを抽出し、
  2. は私2.0.6 buildフォルダにこのコンテンツをコピーしたすべてのファイルを含む(mvn instal:install-fileで作成)
  3. 私のコンパイルしたバイナリに置き換えられたms-data-core-api部分のみ
  4. jar cf myJar.jar tweaked-2.0.5-folderで再構成されました。

まだ動作しません。私に必要なクラスに同じcannot be resolvedエラーが表示されます。ステップ4で作成した最新のjarファイルをアンパックすることにより、

は、私はそれがtweaked-2.0.5-folderと同じ名前のフォルダ内に囲まれたすべての2.0.5コンテンツを(持っていることに気づいた。

私はここに明らかに何かが足りないのですか?私は戻って、包装アムjarに誤って?それとも、それは一緒にすべての依存関係を構築するようにライブラリをmvn packageする正しい方法はありますか?

+0

まず建物は単にMVNをインストール '実行する必要はありませんinstall'' MVNによって行われます)また、プロジェクトには、現時点では失敗しているCIビルドがあります...プロジェクトとは別に、多くのMaven関連の問題が間違っています...しかし、これは別の話です... – khmarbaise

答えて

2

はい、それを行うための正しい方法があります。私はここで2つのオプション

    を提案します210
  1. mvn install:install-fileの代わりにmvn installを実行する必要があります。それは、ms-data-core-apiのpom.xmlをPCのMavenレポに保持し、プロジェクトがms-data-core-apiを参照している場合、プロジェクトはすべての依存関係を知るでしょう(推移的依存関係)

  2. すべての依存関係を含むfat Jarファイルを作成したい場合は、Maven Assembly Pluginを使用できます。私がthis pom.xmlから見ると、彼らはすでに<artifactId>maven-assembly-plugin</artifactId>を持っていました。 代わりのmvn package、あなたが実行する必要があります。あなたがそう何かをする必要がある場合は、インストール-file`(:プロジェクトのmvn clean assembly:single

+0

' mvn install'を実行すると、複数の 'java.io.FileNotFoundException'(例えば、log4jなど)が取得されます。私はそれが起こるはずのものではないと思いますよね?それは奇妙です... – user2018675

+0

それは変です。 'mvn package'を実行できれば、' mvn install'が成功するはずです。 'mvn package'をエラーなく実行できますか? – Rocherlee

+0

ああ、申し訳ありませんが、間違った表現をしたと思います。mvn installは正しく動作します。コンパイルされたバージョンを使用してプロジェクトを実行しようとすると、 'FileNotFoundException'エラーが発生します。 – user2018675

関連する問題