0

既存のプロジェクトをMavenプロジェクトに変換しようとしています。3つのモジュールがあり、モジュールの1つに複数のソースフォルダーがあります。 http://i.imgur.com/jZCnR.png

MavenのクリーンアップとインストールまたはEclipseのクリーンアップでは、classesandtest-classesフォルダーにクラスファイルは作成されません。プロジェクト構造は、そこにクラスファイルがないことによって作成されます。

次のプラグイン構成は、親pomで定義されています。

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <version>1.7</version>
    <executions>
        <execution>
            <id>add-source</id>
            <phase>generate-sources</phase>
            <goals><goal>add-source</goal></goals>
            <configuration>
                <sources>
                    <source>src/main/java/**/*.*</source>
                    <source>src/report/java/**/*.*</source>
                    <source>src/architect/java/**/*.*</source>
                </sources>
            </configuration>
        </execution>
        <execution>
            <id>add-test-source</id>
            <phase>generate-test-sources</phase>
            <goals><goal>add-test-source</goal></goals>
            <configuration>
                <sources>
                    <source>src/test/java/**/*.*</source>
                </sources>
            </configuration>
        </execution>
    </executions>
</plugin>
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.0</version>
    <configuration>
        <source>1.7</source>
        <target>1.7</target>
        <debug>false</debug>
    </configuration>
    <executions>
        <execution>
            <id>default-compile</id>
            <phase>compile</phase>
            <goals><goal>compile</goal></goals>
            <configuration>
                <includes>
                    <include>src/main/java/**/*.*</include>
                    <include>src/report/java/**/*.*</include>
                    <include>src/architect/java/**/*.*</include>
                </includes>
            </configuration>
        </execution>
        <execution>
            <id>default-testCompile</id>
            <phase>test-compile</phase>
            <goals><goal>testCompile</goal></goals>
            <configuration>
                <testIncludes>
                    <include>src/test/java/**/*.*</include>
                </testIncludes>
            </configuration>
        </execution>
    </executions>
</plugin>

私は何が間違っているのですか?

4

3 に答える 3

3

私にとっては、Eclipse の mvn プラグインも適切な構造を生成しません。cmd で mvn eclipse:eclipse を実行してみてください。それは私のためにそれをしました。

また、フェーズ「generate-test-sources」を使用しました。これは「generate-sources」を試してもうまくいかないようです。

于 2013-03-05T10:17:53.433 に答える
1

Using MOJO build-helper-maven-plugin to add more source folders to MAVENによると、includes タグを介して追加のソース ディレクトリを再度定義しないでください。build-helper-maven-pluginでそれらを定義するだけです。

また、 add-sourceゴールを初期化などの以前の Maven フェーズに関連付けることもできます。一般的に、早いほど良いです。

<phase>initialize</phase>
<goals>
    <goal>add-source</goal>
</goals>

私の場合、私の間違いはそれをコンパイル段階にバインドすることでした。私のbuild-helper-maven-pluginはpom.xmlの maven-compile-plugin の前に定義されていましたが、どういうわけかdefault-compileタスクが最初に開始され、余分なソース ディレクトリを黙って無視し、ビルドのさらに下に予期しないエラーが発生しました。同じフェーズに結合されたステップの順序は、pom.xml での出現順序に従う必要がありますが、常にそうとは限りません。

ログに次のように表示されることを確認します。

[INFO] --- build-helper-maven-plugin:1.8:add-source (add-gen-source) @ deepclone-sample-project-1 ---
[INFO] Source directory: E:\dev\workspace...\src\main\generated added.

便利なトリック: コンパイラが余分なディレクトリを実際に通過することを確認するためだけに、コードに意図的なエラーを作成します。コンパイルがすぐに失敗しない場合、問題はクラス ファイル ファイルの生成ではなく、実際にはコンパイラの構成に関するものです。インクリメンタル ビルドの問題または同様の難解な問題を除外できます。

于 2013-12-19T02:57:17.953 に答える
0

build helper maven plugin 's goal に記載されているように、タグでディレクトリを指定する必要があります。add-source<source>

于 2012-12-04T11:26:18.890 に答える