0

ビルド時にカスタム jar をインストールする必要があります。デプロイ ファイルを実行して、カスタム jar を中央ネクサスにアップロードする選択肢がありません。

カスタム jar には依存関係がなく、非常に単純です。これが私の pom ファイルです。

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
<executions>
    <execution>
        <id>install-asjava</id>
        <phase>validate</phase>
        <goals>
            <goal>install-file</goal>
        </goals>
        <configuration>
            <groupId>com.ibm</groupId>
            <artifactId>customjar1</artifactId>
            <version>1.0.0</version>
            <packaging>jar</packaging>
            <file>${basedir}/lib/customjar1.jar</file>
            <generatePom>true</generatePom>
        </configuration>
    </execution>
    <execution>
        <id>install-unijdbc</id>
        <phase>validate</phase>
        <goals>
            <goal>install-file</goal>
        </goals>
        <configuration>
            <groupId>com.ibm</groupId>
            <artifactId>customjar2</artifactId>
            <version>1.0.0</version>
            <packaging>jar</packaging>
            <file>${basedir}/lib/customjar2.jar</file>
            <generatePom>true</generatePom>
        </configuration>
    </execution>
</executions>
</plugin>

を実行するmaven validateと、これらのカスタム jar はローカルに正常にインストールされますが、インストール時に install-plugin を実行したいので、フェーズをインストールに変更すると、エラーで失敗します

[WARNING] The POM for com.ibm:customjar1:jar:1.0.0 is missing, no dependency information available
[WARNING] The POM for com.ibm:customjar2:jar:1.0.0 is missing, no dependency information available

validateを実行する前に常に明示的に実行する必要がありinstallます。この問題を回避したいと考えています。Mavenのドキュメントには、実行サイクルの一部として特定のものが実行される前のすべてのフェーズが記載されていますが、それがうまくいかないこともあります。

この記事validateでも同じことを言っていますが、 maven が正常に動作することを確認するには、明示的に実行する必要がありますinstall

4

1 に答える 1

3

これは、修正されないとしてクローズされたバグ (またはビューに依存しない) です: https://issues.apache.org/jira/browse/MNG-5082

バグからの関連コメントは次のとおりです。

リアクターの一部ではないすべての依存関係は、有効な buildPlan を作成するために必要なビルドの開始時に利用可能である必要があります。これは以前は Maven2 で機能していましたが、Maven は起動時に buildPlan に影響を与えるプラグインを検出できないため、Maven3 のアプローチの方が優れていると思います。修正されないため、これを閉じたいと思います。検証中にインストールファイルを実行すると、ビルドごとに実行され、同じファイルが何度もインストールされます。これは、このアプローチが有効ではないというサインでもあります。

あなたが試すことができるのは、プロジェクトをマルチモジュール プロジェクトに変えることです。最初のモジュールにはmaven-install-plugin構成が含まれているだけなので、そのモジュールが行うことは、2 つのカスタム jar をローカル リポジトリにアップロードすることだけです。2 番目のモジュールは、この最初のモジュールに依存します。2 番目のモジュールがビルドされるまでに、1 番目のモジュールがカスタム jar をアップロードし、それらが利用可能になるはずです。

于 2015-07-20T07:38:52.630 に答える