2

maven2 を使用して axis2 プロジェクトを構築しようとしています。私のプロジェクトは、AAR、WAR、および EAR モジュールを含む親プロジェクトとして構成されています。親プロジェクトのパッケージ ゴールを実行すると、コンソールにビルドの成功が表示され、すべてのファイルが作成されます。ただし、AAR プロジェクトによって生成された AAR ファイルは、生成された WAR プロジェクトには含まれません。AAR プロジェクトは、WAR プロジェクトの依存関係としてリストされています。WAR のパッケージ ゴールを明示的に実行すると、AAR ファイルが WAR ファイルに含まれます。

子のパッケージ ゴールを実行しているときに、親のパッケージ ゴールに必要な依存関係が含まれていないのはなぜですか?

war プロジェクトで maven-war-plugin v2.1-alpha-2 を使用しています。

親 POM:

<parent>
    <groupId>companyId</groupId>
    <artifactId>build</artifactId>
    <version>1.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.nationwide.nf</groupId>
<artifactId>parent</artifactId>
<packaging>pom</packaging>
<version>1.0.0-SNAPSHOT</version>
<modules>
    <module>ws-war</module>
    <module>ws-aar</module>
    <module>ws-ear</module>
</modules>

AAR POM:

<parent>
    <artifactId>parent</artifactId>
    <groupId>companyId</groupId>
    <version>1.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>companyId</groupId>
<artifactId>ws-aar</artifactId>
<version>1.0.0-SNAPSHOT</version>
<description/>
<packaging>aar</packaging>
<dependencies>...</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.5</source>
                <target>1.5</target>
            </configuration>
        </plugin> 

        <plugin>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-wsdl2code-maven-plugin</artifactId>
            <version>1.4</version>
            <configuration>...</configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>wsdl2code</goal>
                    </goals>
                    <id>axis2-gen-sources</id>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-aar-maven-plugin</artifactId>
            <version>1.4</version>
            <extensions>true</extensions>
            <configuration>...</configuration>
        </plugin>
    </plugins>
</build>

ウォー・ポム:

<parent>
    <artifactId>parent</artifactId>
    <groupId>companyId</groupId>
    <version>1.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>companyId</groupId>
<artifactId>ws-war</artifactId>
<packaging>war</packaging>
<version>1.0.0-SNAPSHOT</version>
<description/>
<dependencies>
    <dependency>
        <groupId>companyId</groupId>
        <artifactId>ws-aar</artifactId>
        <type>aar</type>
        <version>1.0.0-SNAPSHOT</version>
    </dependency>
    .
    .
    .
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.1-alpha-2</version>
            <configuration>
                <warName>appName</warName>
            </configuration>
        </plugin>
    </plugins>
</build>

ありがとう、ジョー

4

2 に答える 2

2

次のプラグインをws-warpomファイルに追加することで、Mavenビルドを正しく機能させることができました。

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
                <execution>
                    <phase>process-classes</phase>
                    <goals>
                        <goal>copy-dependencies</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>
                            ${project.build.directory}/${project.build.finalName}/WEB-INF/services
                        </outputDirectory>
                        <includeArtifactIds>
                            ws-aar
                        </includeArtifactIds>
                    </configuration>
                </execution>
            </executions>
        </plugin>
于 2008-09-23T13:22:05.267 に答える
0

依存関係で「type」要素を使用してみましたか? 例えば:

<dependency>
  <groupId>group-a</groupId>
  <artifactId>artifact-b</artifactId>
  <version>1.0</version>
  <type>aar</type>
</dependency>

実際のpomファイルを見ずに、問題が何であるかを確実に言うのは難しい.

アップデート:

親プロジェクトから次を実行するとどうなりますか。

 mvn clean install
  1. 問題に関する限り、「インストール」は「パッケージ」とは異なる動作をしますか?
  2. ローカルの Maven リポジトリ (~/.m2/repository/com/mycompany/.../) に .aar ファイルが表示されますか?

余談ですが、私は maven war プラグインに満足したことはありません。私はいつもMavenアセンブリプラグインを使用してきました。よりうまく機能し、より一貫しているようです。また、最新バージョンの maven (2.0.9) を使用していることを確認してください。最新バージョンで修正された同様の問題と戦うのに半日を費やしました。

于 2008-09-18T03:58:26.157 に答える