如何使用Maven复制文件和目录作为构建后或在特定位置预构建?

时间:2015-07-20 06:10:41

标签: java eclipse maven maven-plugin tycho

我有parent maven pomchild pom。我必须在parent pom之后但在child pom之前复制目录。我怎样才能做到这一点?

1 个答案:

答案 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