私のプロジェクトソースと共に配布されている "lib /"ディレクトリにあるサードパーティのjarに依存するmavenプロジェクトを展開したいと思います。依存関係が解決される前に、mavenでサードパーティの依存関係をインストールしてください
(inotheranswersを説明したように)これを行うための通常の方法では、ユーザは、シェルで次のようなコマンドmvn install:install-file
を入力して、プロジェクトをビルドする前に、ローカルのMavenリポジトリにjarファイルをインストールすることです。
(ただし、ユーザーが手動で依存関係をインストールするためには、というように、1998 ...)を展開することはできません。だから私は、私はinstall-file
目標を指定しようと思いました私のpom.xml
:
<dependency>
<groupId>edu.my.id</groupId>
<artifactId>myartifact</artifactId>
<version>1.0</version>
</dependency>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
<executions>
<execution>
<id>install-jar-lib</id>
<phase>validate</phase>
<goals>
<goal>install-file</goal>
</goals>
<configuration>
<groupId>edu.my.id</groupId>
<artifactId>myartifact</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<file>${project.basedir}/lib/myartifact.jar</file>
<generatePom>true</generatePom>
</configuration>
</execution>
</executions>
問題は、Mavenのは、ときにも、install-file
実行する前に、依存関係を解決しようとするものです私はvalidate
フェーズの早い段階で実行するよう指定します。したがって、それは依存関係を見つけることができないと不平を言う。
この質問はaskedbeforeされている、といくつかの不快な複雑なソリューションが提供されているこれらのような:
- 実行
maven-install-plugin
clean
相中およびアーティファクトを構築する前mvn clean
を実行するために、ユーザーが必要になります。 - hereのように、複数のモジュールを設定します。
<systemPath>
を使用して、システムライブラリとしてjarをロードします。 (システムライブラリを無視して、デプロイされたアプリケーションディレクトリにmaven-dependency-plugin
を使用して依存関係のjarファイルをコピーしているため、これは私の要件を満たしていません)。- カスタムプラグインを作成します。
これらのどれも私を満たしていません。これはビルドシステムが遭遇するルーチンタスクのようです。依存関係をMavenにインストールするには、より簡単な方法が必要です。私のために働いた