3

わかりました、私の問題をできるだけ混乱させないようにしましょう。

いくつかのMavenプラグインを含む標準のmavenプロジェクトがあります-

1) maven-antrun-plugin
2) Custom maven plugin, say, my-maven-plugin
3) jaxws-maven-plugin

ここが複雑な部分です。

最初のプラグインは、現在「${project.build.directory}/java」に配置しているいくつかの .java ファイルを生成します

2 番目のプラグインは、" ${project.build.directory}/java "の下に再度配置する .java ファイルの別のセットを生成します。ただし、それらは異なるパッケージ構造に配置されています。

これらのプラグインはどちらも「generate-sources」フェーズで実行されます。

ここで、私の 3 番目のプラグインである jaxws-maven-plugin は、1 番目と 2 番目のプラグインによって生成されたファイルのクラス ファイルを、WSDL を生成するための SEI として使用しようとします。ただし、コンパイル中のその時点でクラス ファイルは maven によって作成されず、プラグインは「クラスが見つかりません」というメッセージでエラーになります。

では、これを解決するにはどうすればよいでしょうか。また、「generate-sources」フェーズでエラーが発生したため、私のプロジェクトの他のソース ファイルの .class ファイルが target/classes ディレクトリにありません。

そして、ああ、ここに別のひねりがあります。私のソース ファイルのいくつかは、これらのコンパイル時に生成されたソース ファイルをコードにインポートします (私が今この開発者をどれだけひどく探しているかわかりません!!)

私は可能な限り最善の方法で私の問題を説明しようとしましたので、他の詳細や説明をお気軽にお尋ねください.

4

1 に答える 1

0

手動build-helper-maven-pluginで次のmaven-compile-plugin前に実行jaxws-maven-plugin:

<build>
    <plugins>
        <plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            ...
            <executions>
                <execution>
                    <phase>generate-sources</phase>
                </execution>
                ...
            </executions>
        <plugin>
        <plugin>
            ...
            <artifactId>my-maven-plugin</artifactId>
            ...
            <executions>
                <execution>
                    <phase>generate-sources</phase>
                </execution>
                ...
            </executions>
        <plugin>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <executions>
                <execution>
                    <id>add-source</id>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>add-source</goal>
                    </goals>
                    <configuration>
                        <sources>
                            <source>some directory</source>
                            ...
                        </sources>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <artifactId>maven-compile-plugin</artifactId>
            ...
            <executions>
                <execution>
                    <phase>generate-sources</phase>
                </execution>
                <goals>
                    <goal>compile</goal>
                </goals>
            </executions>
        <plugin>
        <plugin>
            <artifactId>jaxws-maven-pluginn</artifactId>
            ...
        <plugin>

    </plugins>
</build>

私はそれをテストしていませんが、うまくいくはずだと思います。

于 2014-01-17T12:53:10.147 に答える