POMで指定された必要な依存関係をMavenでダウンロードする方法があります。これは必要な依存関係がいくつかのMavenリポジトリ(中央)にある場合、またはローカルリポジトリにインストールされている場合にのみ機能します。
maven-dependency-pluginを構成するプラグイン要素をPOMに追加するだけです。これにより、コンパイル段階ですべての依存関係が特定のフォルダにコピーされます。この場合:target/lib。
<project>
...
<build>
...
<plugins>
...
<!-- For copying dependencies into target folder -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>compile</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
...
</build>
...
</project>
あなたが実行可能なJARを作っていた場合、あなたはまた、マニフェストでのClass-Path要素に/ libが対象と指定されたメインクラスを使用するためにコピーされた依存関係を追加するのmaven-jarファイル・プラグインを設定できます。
<!-- For including dependencies in target folder in JAR manfiest Class-Path -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>Main</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
Mavenを使用した場合のJARをダウンロードしてプロジェクトにlibフォルダに入れて、ことはできません。あなたが見たい場所を教えてくれれば、IDEはそれらを選ぶことができます。または、フラグを持つjavac
とjava
コマンドを使用して、依存関係の場所を指定してください。
私はプロジェクトをMavenプロジェクトに変換しようとしました。ビルドパスから外部依存関係を削除し、pom.xmlに定義されている依存関係が1つだけになります。私はそれをファイルシステムとしてエクスポートしてからインポートしました。しかし、私が再インポートした後、SWT jarを見つけることができませんでした。その奇妙なと私はなぜ理解していない。それで、私は他の選択肢を模索していました。 –
をMavenと一緒に使用すると、プロジェクトにSWT jarファイルを直接追加することはなく、プロジェクトをエクスポートする必要はありません。それだけで十分ですのでそのまま使用してください。リブ解決はコンパイル時に行われます。問題は、SWTがmaven中央リポジトリから取得可能かどうかわかりません。やってみました ? – davidxxx
ありがとうございます。私は日食にいくつかの問題があったと思う。ファイルシステムを使用してエクスポートすると、依存関係が保持されます。 –