使用 spring-boot-maven-plugin 运行和重新打包目标都会导致我的编译和测试阶段重新运行,例如
mvn clean package spring-boot:run
您会看到两次编译和测试运行...
在maven调试输出中我可以看到
...
[DEBUG] Goal: org.springframework.boot:spring-boot-maven-plugin:1.0.2.RELEASE:repackage (default)
[DEBUG] Style: Regular
[DEBUG] Configuration: <?xml version="1.0" encoding="UTF-8"?>
<configuration>
<finalName default-value="${project.build.finalName}"/>
<outputDirectory default-value="${project.build.directory}"/>
<project default-value="${project}"/>
</configuration>
[DEBUG] --- init fork of myapp:1.0-SNAPSHOT for org.springframework.boot:spring-boot-maven-plugin:1.0.2.RELEASE:run (default-cli) ---
[DEBUG] Dependencies (collect): []
[DEBUG] Dependencies (resolve): [compile, test]
[DEBUG] -----------------------------------------------------------------------
查看插件源代码类,我明白了 RunMojo amd RepackageMojo
@Mojo(name = "run", requiresProject = true, defaultPhase = LifecyclePhase.VALIDATE, requiresDependencyResolution = ResolutionScope.TEST)
@Execute(phase = LifecyclePhase.TEST_COMPILE)
public class RunMojo extends AbstractMojo {
认为 @Execute 与此有关?
谢谢
最佳答案
是的。为什么不直接使用“mvn spring-boot:run”?据我所知,这就是 Maven 的工作方式。
关于maven-plugin - spring-boot maven 插件重新运行编译和测试阶段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23805466/