我有parent maven pom
和child pom
。我必须在parent pom
之后但在child pom
之前复制目录。我怎样才能做到这一点?
答案 0 :(得分:2)
Maven定义了一个生命周期列表,当您告诉Maven构建项目时,这些生命周期列表按顺序执行。有关这些阶段的有序列表,请参阅Lifecycles Reference。
如果你跑
mvn clean test
Maven执行所有生命周期,包括test
。
假设您有一个多模块Maven项目,并且子模块需要在运行其测试之前复制父模块生成的资源,您可以使用子模块中的maven-resources-plugin
并将其绑定到{ {1}}阶段:
generate-resources
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy-resources-from-parent</id>
<phase>generate-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/generated-resources
</outputDirectory>
<resources>
<resource>
<directory>../generated-resources</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
阶段在generate-resources
阶段之前执行。所以,如果你运行
test
在父模块的目录中,这将在父模块运行之后和子模块运行其测试之前将所有内容从mvn clean test
复制到<parent>/generated-resources
。