我可以从arbritrary阶段恢复Maven生命周期吗?

Rin*_*nke 6 java maven continuous-delivery

我想说服Maven"继续它离开的地方".我首先做一个mvn package构建包.稍后我可能希望通过执行a来继续生命周期来进行集成测试等mvn install.在这种情况下,我希望Maven不要从一开始就重新开始生命周期,而是在第一阶段package(即pre-integration-test)之后重新开始.是否有可能在第一阶段以外的阶段开始生命周期?

Ger*_*ica 2

AFAIK,没有内置功能支持此功能。不过,您可以执行以下操作:

覆盖所有目标绑定,直到(但不包括)来自以下目标的预期起始阶段:

  • default-bindings.xml
  • <build>/<plugins>/<plugin>当前 POM 和所有父 POM 的部分(使用 进行检查mvn help:effective-pom

在这样的配置文件中:

<profiles>
    <profile>
        <id>resume-at-pre-int-test</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>com.soebes.maven.plugins</groupId>
                    <artifactId>maven-echo-plugin</artifactId>
                    <version>0.1</version>
                    <executions>
                        <execution>
                            <id>skip-process-resources</id>
                            <phase>process-resources</phase>
                            <goals>
                                <goal>echo</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <echos>
                            <echo>Default plugin:goal binding for process-resources phase overridden</echo>
                        </echos>
                    </configuration>
                </plugin>

                <plugin>
                    ...
                </plugin>

                ...

            </plugins>
        </build>
    </profile>
</profiles>
Run Code Online (Sandbox Code Playgroud)

使用 激活它mvn install -P resume-at-pre-int-test