gpt4 book ai didi

maven - mvn 在 exec 之前编译

转载 作者:行者123 更新时间:2023-12-03 23:56:51 25 4
gpt4 key购买 nike

我正在尝试设置我的 POM,以便当我执行 mvn exec:exec 时或 mvn exec:java它将首先编译源代码,如果成功,则执行它。

我有以下内容并尝试移动 <execution>部分关于但无法使其工作:

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
<executions>
<execution>
<phase>exec</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<configuration>
<mainClass>my.main.class</mainClass>
</configuration>
</plugin>
</plugins>
</build>

当我做 mvn exec:exec ... 时或 mvn exec:java它不会首先编译。我试过把 <execution>参与 exec插件部分,但这也不起作用?

最佳答案

这不能完全回答问题,但会帮助我们实现您的主要目标。
而不是执行 build运行 mvn exec:java 时的目标我们可以执行mvn exec:java在调用“构建后”阶段/目标时。
这将有效地使该阶段无法使用,因为我们将通过执行来替换它,但是如果我们有一个我们没有使用的“构建后”目标(如 packageinstall ),我们可以将其用于执行如下:
使用包目标最终会像:

...
<properties>
...
<main.class>${project.groupId}.MainClass</main.class>
...
</properties>
...
<build>
<plugins>
...
<!-- region Forces the app to be executed when using mvn package -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<mainClass>${main.class}</mainClass>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- endregion -->
...
</plugins>
</build>
这样当我们执行目标 package与: mvn package插件将被执行并运行应用程序。

关于maven - mvn 在 exec 之前编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18352380/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com