1

我有一个具有以下结构的 Java Maven 项目。(这是一个逻辑结构,不一定是确切的目录结构。)

Project
|-Submodule
| |-src/main/java
| |-src/main/resources
| |-src/test/java
| |-src/test/resources
| `-pom.xml
`-pom.xml

根据(我对 Maven 标准的理解),父 pom 在它的<modules>标签中引用子模块,而子模块 pom 引用父 pom 作为它的<parent>.

现在,我的目标是使用 Maven 将两个新的源文件夹添加到子模块,即src/integrationTest/javasrc/integrationTest/resources. 我希望 Maven “知道”这两个文件夹,以便我可以使用我的 Maven 测试插件在其中执行测试,maven-pmd-plugin. 我希望 Eclipse 能够“了解”这两个文件夹,以便它们在 Eclipse 的图形项目资源管理器中正确显示。

有人告诉我,该build-helper-maven-plugin插件可用于创建我需要的这些附加目录。所以我在我的子模块 pom 中添加了以下配置:

<plugins>
    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <executions>
            <execution>
                <id>add-integration-test-sources</id>
                <phase>generate-test-sources</phase>
                <goals>
                    <goal>add-test-source</goal>
                </goals>
                <configuration>
                    <sources>
                        <source>src/integration-test/java</source>
                    </sources>
                </configuration>
            </execution>
            <execution>
                <id>add-integration-test-resources</id>
                <phase>generate-test-resources</phase>
                <goals>
                    <goal>add-test-resource</goal>
                </goals>
                <configuration>
                    <resources>
                        <resource>
                            <directory>src/integration-test/resources</directory>
                        </resource>
                    </resources>
                </configuration>
            </execution>
        </executions>
    </plugin>
</plugins>

当我重建项目时,Maven 没有生成我想要的目录。所以我把插件配置从我的子模块 pom 中取出,然后把它放在我的父 pom 中。Maven 仍然没有生成我的目录。

在这一点上,我不知道如何让这个插件工作。我正在尝试关注其他在线教程,但我一定做错了什么。谁能解释要配置哪个pom文件build-helper-maven-plugin?以及如何配置 Eclipse 以正确显示新的 Maven 项目结构?

谢谢您的帮助!

4

1 回答 1

1

khmarbaise的评论让我意识到我的错误,尽管我没有接受他的建议。

build-helper-maven-plugin配置应该放在我最初拥有它的子模块 pom(而不是父 pom)中。但是 Maven 不会为你创建这些目录,创建目录然后 Maven 使用它们。

一旦 Maven 使用了您的新目录,Eclipse 就会很好地显示它们。

于 2019-02-08T21:02:11.480 回答