Maven:运行程序的生命周期阶段?

Mar*_*son 6 java maven

我可以使用Maven编译和测试程序

mvn compile
mvn test
Run Code Online (Sandbox Code Playgroud)

是否有一个生命周期命令来简单地运行程序,或者生成一个运行该程序的脚本?

man*_*uti 5

没有生命周期阶段可以做到这一点,但你可以绑定exec-maven-plugin,特别是exec:java目标.例如,要在包阶段上运行目标:

<plugin>
     <groupId>org.codehaus.mojo</groupId>
     <artifactId>exec-maven-plugin</artifactId>
     <version>1.4</version>
     <executions>
         <execution>
            <id>run-java</id>
            <phase>package</phase>
            <goals>
                <goal>java</goal>
            </goals>
         </execution>
      </executions>
      <configuration>
           <mainClass>main.Class</mainClass>
      </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)


Tun*_*aki 5

如果你问这个问题,这意味着你不清楚Maven 生命周期到底是什么。

没有生命周期 命令,只有构建生命周期,它由不同的阶段组成

所以说清楚:有一个构建生命周期,它由阶段组成,阶段由插件目标组成。

当您调用 Maven 时

mvn compile
Run Code Online (Sandbox Code Playgroud)

您正在调用构建阶段。在 Maven 中,有一个预定义的有序阶段列表。当您调用一个阶段时,它之前的所有阶段也会被调用。调用一个阶段意味着你正在调用所有绑定到这个阶段的插件。为了compile情况,这意味着它会调用默认情况下maven-compiler-plugin绑定到compile阶段的属性。

所以要严格回答你的问题:不,没有生命周期命令可以做到这一点。

但是,您可以在 POM 中配置一个插件,该插件将绑定到某个阶段,并调用该阶段。为此,您可以参考@manouti 的回答,其中介绍了exec-maven-plugin.