2

製品をビルドするたびに wsgenを実行したくないので、wsgenを独自のプロファイルで実行します。しかし、実行するとバージョンが見つからないというエラーが表示されます。

$ mvn package -P wsgen [INFO] Scanning for projects... [ERROR] The build could not read 1 project -> [Help 1] [ERROR] [ERROR] The project project-ejb:2.3.15-SNAPSHOT (C :\Projects\MyProject\pom.xml) に 1 つのエラー [エラー]
'build.plugins.plugin[org.jvnet.jax-ws-commons:jaxws-maven-plugin].dependencies.dependency.version' for org.glassfish :javax.javaee:jar がありません。@ 行 167、列 41 [エラー] [エラー] エラーの完全なスタック トレースを表示するには、-e スイッチを指定して Maven を再実行します。[エラー] -X スイッチを使用して Maven を再実行し、完全なデバッグ ログを有効にします。[エラー] [エラー] エラーと考えられる解決策の詳細については、次の記事を参照してください: [エラー] [ヘルプ 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException

これは、子 pom (プロファイルを含む pom) のスニペットです。

<packaging>ejb</packaging>
<parent>
    <artifactId>MyProject</artifactId>
    <groupId>project</groupId>
    <version>2.3.15-SNAPSHOT</version>
</parent>
<profiles>
    <profile>
        <id>wsgen</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.jvnet.jax-ws-commons</groupId>
                        <artifactId>jaxws-maven-plugin</artifactId>
                        <version>2.1</version>
                        <executions>
...
                </executions>
                <dependencies>
                    <dependency>
                        <groupId>org.glassfish</groupId>
                        <artifactId>javax.javaee</artifactId>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </build>
</profile>

しかし、親 pom では、この依存関係をdependencyManagementタグの下のバージョンで定義しています。

プロファイルが親のdependencyManagementタグを継承していないため、依存関係にバージョン番号がないと考えられていると思います。プロファイルにこれを親から継承させる方法はありますか?

4

2 に答える 2

4

dependencyManagementpom および child pomsdependenciesで適用されます。プラグインには適用されません(少なくとも、maven-dependency-plugin などのいくつかのプラグインで気づいたことです)。dependencies

javax.javaee.version考えられる解決策は、親 pom でプロパティ () を定義し、それを自分dependencyManagementjaxws-maven-plugin プラグインで使用することです。

于 2013-01-08T19:24:21.190 に答える
2

<pluginManagement>タグを使用して、親pomでプラグインを構成し、そのバージョン番号、フェーズ、目標、またはその他の構成にすることができます。

子pomで同じを宣言する限り、すべての継承pomは親pomと同じ構成になり<groupId>ます<artifactId>

于 2013-01-08T21:13:58.960 に答える