为什么列出插件的目标而不绑定到某个阶段? 请考虑此摘录摘自JACOCO范例() org.jacoco jacocomaven插件 0.7.5-快照 默认准备代理 配制剂 默认准备代理集成 准备代理集成 默认报告 报告 默认报表集成 报表集成 默认检查 检查 捆 复杂性 覆盖层 0.60 org.apache.maven.plugins maven surefire插件 2.16 org.apache.maven.plugins maven故障保护插件 2.16 默认集成测试 集成测试

为什么列出插件的目标而不绑定到某个阶段? 请考虑此摘录摘自JACOCO范例() org.jacoco jacocomaven插件 0.7.5-快照 默认准备代理 配制剂 默认准备代理集成 准备代理集成 默认报告 报告 默认报表集成 报表集成 默认检查 检查 捆 复杂性 覆盖层 0.60 org.apache.maven.plugins maven surefire插件 2.16 org.apache.maven.plugins maven故障保护插件 2.16 默认集成测试 集成测试,maven,plugins,Maven,Plugins,现在我知道可以将插件的目标绑定到maven阶段,即在maven执行特定阶段时运行该目标 只列出maven failsafe插件的集成测试目标,而不将其绑定到其他东西,这有什么意义 与jacoco报告和其他目标相同?我不认为你可以强迫插件只执行那些列出的目标,对吗 非常感谢如果我理解正确,M2E将在工作区完整或增量构建期间执行插件目标 下面的文章可能会有一些启发: 您是正确的,在命令行上,您将无法指定目标,因为它是一个插件目标,并且不与阶段相关联。对于M2E集成来说,这可能是一个奇怪的用法。关键

现在我知道可以将插件的目标绑定到maven阶段,即在maven执行特定阶段时运行该目标

只列出maven failsafe插件的集成测试目标,而不将其绑定到其他东西,这有什么意义

与jacoco报告和其他目标相同?我不认为你可以强迫插件只执行那些列出的目标,对吗


非常感谢

如果我理解正确,M2E将在工作区完整或增量构建期间执行插件目标

下面的文章可能会有一些启发:


您是正确的,在命令行上,您将无法指定目标,因为它是一个插件目标,并且不与阶段相关联。对于M2E集成来说,这可能是一个奇怪的用法。

关键是插件可以定义默认的生命周期阶段,在这些阶段中,相应的目标是必须的(许多插件都会这样做)。在这种情况下,不需要在pom文件中明确指定生命周期阶段

比如说,公司有一个目标。此目标有一个默认绑定到
集成测试
生命周期阶段。以下是文件摘录:

说明:

使用Surefire运行集成测试。属性:

  • 需要执行一个Maven项目
  • 需要范围:test中工件的依赖项解析
  • 目标是线程安全并支持并行构建
  • 默认情况下绑定到生命周期阶段:集成测试
这就是为什么您不需要在这样的配置中提供生命周期阶段的原因:


org.apache.maven.plugins
maven故障保护插件
2.18.1
默认集成测试
集成测试

jacoco maven插件也是如此。

这个问题既没有用Eclipse标记,也没有用m2e标记。
    <plugins>
    <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>0.7.5-SNAPSHOT</version>
        <executions>
            <execution>
                <id>default-prepare-agent</id>
                <goals>
                    <goal>prepare-agent</goal>
                </goals>
            </execution>
            <execution>
                <id>default-prepare-agent-integration</id>
                <goals>
                    <goal>prepare-agent-integration</goal>
                </goals>
            </execution>
            <execution>
                <id>default-report</id>
                <goals>
                    <goal>report</goal>
                </goals>
            </execution>
            <execution>
                <id>default-report-integration</id>
                <goals>
                    <goal>report-integration</goal>
                </goals>
            </execution>
            <execution>
                <id>default-check</id>
                <goals>
                    <goal>check</goal>
                </goals>
                <configuration>
                    <rules>
                        <!--  implmentation is needed only for Maven 2  -->
                        <rule implementation="org.jacoco.maven.RuleConfiguration">
                            <element>BUNDLE</element>
                            <limits>
                                <!--  implmentation is needed only for Maven 2  -->
                                <limit implementation="org.jacoco.report.check.Limit">
                                    <counter>COMPLEXITY</counter>
                                    <value>COVEREDRATIO</value>
                                    <minimum>0.60</minimum>
                                </limit>
                            </limits>
                        </rule>
                    </rules>
                </configuration>
            </execution>
        </executions>
    </plugin>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.16</version>
    </plugin>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-failsafe-plugin</artifactId>
        <version>2.16</version>
        <executions>
            <execution>
                <id>default-integration-test</id>
                <goals>
                    <goal>integration-test</goal>
                </goals>
            </execution>
        </executions>
    </plugin>
</plugins>