19

私の maven2 プロジェクトには、${basedir}/autogenによって生成された自動生成されたソース コード ファイルを含むディレクトリがありますwsdl2java

実行するmvn compileと、クラスが重複しているため、コンパイル エラーが発生します${basedir}/autogen。これは本当です。しかし、コンパイル段階は で何をしているの${basedir}/autogenでしょうか? このディレクトリをソース ディレクトリとして追加するように Maven に指示していません。そして、ディレクトリを無視するようにmavenに指示する方法はないようです。

4

10 に答える 10

26

maven-processor-plugin を使用したときに同じ問題が発生し、解決策は maven-compiler プラグインを次のように構成することであることがわかりました。

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.1</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
                <compilerArgument>-proc:none</compilerArgument>
            </configuration>
        </plugin>

-proc:none は、コンパイルがアノテーション処理なしで行われることを意味するため、クラスの重複はありません (通常、ソース生成フェーズで生成されます)。

それが役立つことを願っています。

于 2011-09-19T08:04:21.230 に答える
6

私はこれを数回見ました。ほとんどの場合、生成されたクラスがメインの src ツリーに追加され、バージョン管理にチェックインされることが原因です。

于 2009-05-22T20:48:06.030 に答える
5

私の場合、ソースディレクトリを変更するとうまくいきました。

新しい POM は次のようになります。

<build>
        <sourceDirectory>src</sourceDirectory>

sourceDirectory タグ付きの src フォルダーのみを指しています。

以前は

 <build>
    <sourceDirectory>.</sourceDirectory>

以前は IntelIJ で動作していましたが、cmd では動作していませんでした。今では両方で動作します。

于 2019-07-18T12:03:11.813 に答える
2

I had the exact same issue. In my case the problem was that I called maven with -f=./pom.xml. I have no idea why this leads to a different result (would be nice if someone can explain) but maybe good to know if someone else has the same issue.

于 2018-06-12T16:33:54.300 に答える
1

pom.xml から generateAsync を削除することで解決します。GWT プラグインは次のようになります。

                <groupId>org.codehaus.mojo</groupId>
                <artifactId>gwt-maven-plugin</artifactId>
                <version>${gwtVersion}</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>compile</goal>
                            <goal>test</goal>
                            <!-- <goal>i18n</goal> -->

                        </goals>
                    </execution>
                </executions>
于 2016-05-24T14:03:15.743 に答える
1

JPAモデルジェネレーターでも同様の問題がありました。この依存関係で発生しました:

<dependency>
    <groupId>org.eclipse.persistence</groupId>
    <artifactId>org.eclipse.persistence.jpa.modelgen</artifactId>
    <version>2.1.1</version>
</dependency>

scope=provided を誤って追加した結果、次のようになりました。

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.1:compile (default-compile) on project mocker: Compilation failure: Compilation failure:
[ERROR] \Projects\entity\MockVehicle_.java:[10,7] duplicate class: entity.MockVehicle_
于 2010-11-19T07:33:06.077 に答える
-2

同じ問題を解決します

  1. Mavenプロジェクトのクリーニング:-mvn clean
  2. src から com フォルダーを削除してからコンパイルします。
  3. com を generated から src->main-->java にコピーします
  4. 再度コンパイル

このヘルプを願っています..

于 2016-04-01T13:29:09.433 に答える