Mavenは素晴らしいです。pom
構成で依存パッケージのバージョンを指定し、それらを自動的に適用することで、ほとんどの場合、jar 依存関係の地獄から私を守ります。また、m2e を介して Eclipse との統合も優れているため、IDE でシームレスに動作します。
これは、Maven がグローバルに認識している依存関係に最適です。ただし、Maven リポジトリーで使用できないプロジェクトに組み込む必要があるライブラリーが存在する場合があります。この場合、通常はlib/
プロジェクトのディレクトリに追加します。それらがクラスパスにある限り、物事はコンパイルされます。
ただし、問題は、プロジェクトをインポートするときにそれらを自動的に含めることです。私はあまりにも長い間、中途半端な修正とハッキングでこの問題を許容してきました。誰かがこのプロジェクトをインストールするたびにlib/
、すべてのエラーがなくなるように、手動で jar を Eclipse ビルド パスに追加するように指示する必要があります。次のようなもの:
コマンド ライン プログラムと Eclipseの両方で動作する方法でこのプロセスを自動化する方法を探していますmvn
。Eclipse に重点を置いています。プロジェクトをインポートするときにコンパイルするだけで済むのは素晴らしいことです。
このためにレポサーバーをセットアップしたくありません。また、ローカルで何かをセットアップすることを保証する社内独自のコンポーネントもありません。開発者がMavenを使用していないjarファイルがいくつかあります。そして、それらをコンパイルしたい...ソフトウェアの配布にそれらを含めることができるはずですよね?
私は、Eclipseでも問題なく動作する、これを実装するための合理的な方法を本当に探しています。これは有望な解決策の 1 つですが、この問題に対する正式な解決策はないようです。近くにある他の唯一のものはmaven-addjars-pluginです。これは正常に機能しますが、コマンドラインでのみ機能します。このプラグインは悪くなく、かなり合理的な構成になっています。
<plugin>
<groupId>com.googlecode.addjars-maven-plugin</groupId>
<artifactId>addjars-maven-plugin</artifactId>
<version>1.0.5</version>
<executions>
<execution>
<goals>
<goal>add-jars</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>${project.basedir}/lib/java-aws-mturk</directory>
</resource>
<resource>
<directory>${project.basedir}/lib/not-in-maven</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
しかし、それを Eclipse で実行しようとすると、ライフサイクル マッピングに関する次の混乱を に追加する必要がpom.xml
あります。実際にEclipseビルドパスに何かを追加するように構成されているとは思いません。
<pluginManagement>
<plugins>
<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>
com.googlecode.addjars-maven-plugin
</groupId>
<artifactId>
addjars-maven-plugin
</artifactId>
<versionRange>
[1.0.5,)
</versionRange>
<goals>
<goal>add-jars</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>