0

我有一个 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 位

4

1 回答 1

1

显示的两个执行都缺少<id>元素。因此,Maven 使用它的默认执行 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>
于 2013-09-12T14:36:37.263 回答