我有一个maven pom.xml,它将运行一组ant任务。某些任务仅适用于特定配置文件,而某些任务仅适用于所有配置文件。这是我的
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<phase>test</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<!-- Some of my common task -->
</tasks>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
<build>
<profiles>
<profile>
<id>developement</id>
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<phase>test</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<!-- Task specifics for profile -->
</tasks>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
<build>
</profile>
</profiles>
我使用以下命令运行项目
mvn clean install -P developement
在构建此项目时,常见任务未运行。配置文件中的任务仅运行。是不是因为我在共享和配置文件插件中使用相同的artifactID??
我的环境:
Java 1.6 Maven 2.2.1 Windows 7 64位
答案 0 :(得分:1)
显示的两个执行都缺少<id>
个元素。因此,Maven使用其默认执行ID,并且配置文件执行将覆盖公共执行ID。
要修复此问题,请使用您选择的值为这两个ID添加ID。
<!-- common configuration -->
<executions>
<execution>
<id>antrun-common</id>
<phase>test</phase>
....
<!-- development profile configuration -->
<executions>
<execution>
<id>antrun-development</id>
<phase>test</phase>