【发布时间】:2011-04-07 04:04:42
【问题描述】:
我有一个包含 2 个配置文件的项目,因为 UAT 和 PROD 使用同一个 jar 的不同版本。
我注意到,如果我不明确调用 mvn clean ...,则部署的 EAR 将同时具有 UAT 和 PROD jar。
有没有办法在 POM 中指定 Maven 应始终在任何构建之前进行清理?
【问题讨论】:
我有一个包含 2 个配置文件的项目,因为 UAT 和 PROD 使用同一个 jar 的不同版本。
我注意到,如果我不明确调用 mvn clean ...,则部署的 EAR 将同时具有 UAT 和 PROD jar。
有没有办法在 POM 中指定 Maven 应始终在任何构建之前进行清理?
【问题讨论】:
请阅读the maven lifecycle 尤其是包的生命周期。
您使用的 maven clean 插件可能允许您在特定的阶段定义一个干净的目标。 您还可以执行例如 mvn clean install -P profile
【讨论】:
clean 可能会导致不确定的行为。
当然。访问Maven clean plugin usage page,他们提供了如何在构建过程中自动运行插件的示例。
【讨论】:
使用maven-clean-plugin 和此处给出的initialize 阶段
http://maven.apache.org/plugins/maven-clean-plugin/usage.html
<project>
[...]
<build>
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.4.1</version>
<executions>
<execution>
<id>auto-clean</id>
<phase>initialize</phase>
<goals>
<goal>clean</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
[...]
</project>
【讨论】: