バイナリ形式で配布されたライブラリをMavenのみで使用する必要があるため、プロジェクトをMavenに変換し始めましたが、壁に頭をぶつけすぎた後、自分自身を傷つけずに使用することにしました蟻。 jarとその推移的な依存関係のすべてを、選択したディレクトリにMavenでダウンロードしたいので、通常どおり楽しみながらSCMにチェックインし、再び至福の開発者になります。
これを簡単に行う方法はありますか?
maven依存プラグイン は潜在的に問題を解決できます。
すべてのプロジェクトの依存関係が指定されたpom
がある場合、実行する必要があるのは実行するだけです
mvn dependency:copy-dependencies
target/dependencies
フォルダーには、推移性を含むすべての依存関係が含まれています。
追加 以下からのグスタボの答え :依存関係sourcesをダウンロードするには、
mvn dependency:copy-dependencies -Dclassifier=sources
( Apache Maven Dependency Plugin doc )を使用します。
ivy.xmlファイルを作成して、プロジェクトの依存関係をリストします。
<ivy-module version="2.0">
<info organisation="org.demo" module="demo"/>
<configurations defaultconfmapping="default"/>
<dependencies>
<dependency org="commons-lang" name="commons-lang" rev="2.6"/>
..
</dependencies>
</ivy-module>
これらのjarおよびそれらの推移的な依存関係のダウンロードは、現在2つの方法のいずれかで実行できます。
Ivyは コマンドラインプログラム として実行できます。次の例は、ローカルの「lib」ディレクトリにダウンロードします。
Java -jar ivy-2.2.0.jar -ivy ivy.xml -retrieve "lib/[artifact].[ext]"
ivyは、ANTビルドに統合されている場合に最適に使用されます。次のターゲット例では、jarをローカルのlibディレクトリにダウンロードし、依存関係分析用のHTMLレポートを生成します。
<target name="retrieve" description="Retrieve dependencies locally">
<ivy:retrieve pattern="${lib.dir}/[artifact].[ext]"/>
<ivy:report todir="${report.dir}" graph="false"/>
</target>
@ Raghuram answerに基づいて、 プロジェクトの依存関係をコピーする に関するチュートリアルを見つけました。
プロジェクトpom.xml
ファイルを開き、これを見つけます。
<project>
[...]
<build>
<plugins>
...
</plugins>
</build>
[...]
</project>
<plugins> ... </plugins>
を次のものに置き換えるより:
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/alternateLocation</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
そして、コマンドラインmvn dependency:copy-dependencies
内でmavenを呼び出します
終了後、target/dependency
が存在する現在のディレクトリに対するjar
のすべての依存関係内にpom.xml
フォルダーを作成します。
最後に、Mavenの使用方法を見つけました。 Eclipse内から、新しいMavenプロジェクトを作成します。
Mavenをダウンロードし、アーカイブを抽出し、/bin
フォルダーをパスに追加します。
mvn -v
を実行して、コマンドラインからインストールを検証します(バージョンとJavaインストールパスを出力します)
プロジェクトのルートフォルダー(pom.xml
がある場所)に移動して、次を実行します。
mvn dependency:copy-dependencies
すべてのjarファイルは/target/dependency
にダウンロードされます。
別の出力ディレクトリを設定するには:
mvn dependency:copy-dependencies -DoutputDirectory="c:\temp"
Pom.xmlを変更することにより、すべての依存関係のダウンロードにこのMavenプロジェクトを再利用できるようになりました
ビルドパス->ビルドパスの構成->ライブラリ-> JARの追加により、Javaプロジェクトにjarを追加します。
${MAVEN_HOME}/conf
などのsettings.xml
ディレクトリにいくつかの設定ファイルがあるかどうかを確認してください。これらのファイルは.m2
フォルダーの設定を上書きします。そのため、.m2
のリポジトリフォルダーは表示または破棄されない可能性があります。