如何使用 build-helper-maven-plugin 创建额外的目录?

How to use build-helper-maven-plugin to create extra directory?

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

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

根据(我对)Maven 标准的理解,父 pom 在其 <modules> 标记中引用子模块,子模块 pom 在 <parent> 中引用父 pom。

现在,我的目标是使用Maven 向子模块添加两个新的源文件夹,即src/integrationTest/javasrc/integrationTest/resources。我希望 Maven "know about" 这两个文件夹,以便我可以使用我的 Maven 测试插件 maven-pmd-plugin 在其中执行测试。我希望 Eclipse "know about" 这两个文件夹,以便它们在 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 项目结构?

感谢您的帮助!

khmarbaise的评论让我意识到自己的错误,虽然我没有采纳他的建议。

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

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