0

いくつかの子モジュールを持つ親POMがあります。これらの1つとして、ビルドの下にantrunセクションを追加しました。現時点では、これは単にステートメントを出力します。この子モジュールは、セット全体で他のモジュールに依存しています(したがって、親には1〜8の子が8つあり、このモジュール(#5)は2と3に依存します)

antrunセクションの形式は次のとおりです。

<build>...
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <version>1.1</version>
            <executions>
                <execution>
                    <phase>validate</phase>
                    <goals>
                        <goal>run</goal>
                    </goals>
                    <configuration>
                        <tasks>
                            <echo>*******************  Running generate </echo>
                     </tasks>
                    </configuration>
                </execution>
            </executions>
        </plugin>

    </plugins>
</build>

親モジュールの下でアクション(たとえば、検証またはインストール)を実行すると、これらは正常に機能し、予想どおり、このantrunタスクを保持する子(#5)に対してechoステートメントが実行されます。

ただし、子モジュールに移動してそこからmvn validateを試してみると、(凡例)が取得されます。

could not resolve dependencies for project...

失敗。しかし、すべてのモジュールは私のローカルリポジトリに存在し、最新のものです。そして、mvn installを再度実行するというこの問題の通常の修正では、修正されません。

他の誰かが(何がうまくいかないのか)知らない限り、それは私にはバグのように見えます。

クリス

4

2 に答える 2

0

OK、これは私のせいです。親プロジェクトにPOMを追加しました。そこに共通の依存関係を配置して、respoやディストリビューションなどのトップレベルのPOMを維持したいと思っていました。

Mavenはこれでローカルに動作するように見えましたが、このPOMのみのアーティファクトをリポジトリにデプロイしないため、これはそこでは見つかりませんでした。パズルは、親からビルドを実行するときにこれがまだ機能する理由です。

とにかくそれは修正されました-私はdepのものを私の単一の親POMに折り畳みました、そしてすべては順調です。フィードバックをありがとうございました。

于 2012-03-28T16:19:58.133 に答える
0

Mavenでサブモジュールを呼び出す場合は、特定の方法で呼び出す必要があります。

 +-- root (pom.xml)
       +-- mod-child-1
       +-- mod-child-2
       +-- mod-child-3
       +-- mod-child-4
       ....

たとえばmod-child-3の場合、最初にルートを介してmvn installを実行する必要があります...その後、マルチモジュールビルドのルートの場所から次の操作を実行できます。

mvn -pl mod-child-3 package 
于 2012-03-23T20:36:30.850 に答える