如何使用 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/java
和src/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 就会很好地显示它们。
我有一个具有以下结构的 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/java
和src/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 就会很好地显示它们。