1

我有一个在 pom 文件中有最终版本的项目,比如说 12.3.45。我前段时间已经为这个版本构建了代码,所有构建的 jar 都在本地 maven repo 中。

然后在某个时候我运行了 mvn clean,所以所有的目标文件夹都被删除了。

现在我想使用 mvn exec:java 尽快执行一些代码。最好不要建造任何东西,因为为什么不呢?所有的罐子在某个时候都已经构建好了,我知道在那之后没有任何代码更改。如何强制 maven 尽快执行代码,而不是重新编译任何东西,而只是重用本地 repo 中的 jars?谢谢。

4

1 回答 1

0
  • 如果您的工件位于本地或远程存储库中,您可以将它们用作依赖项。
  • 您可以使用 exec-maven-plugin 的选项 includeProjectDependencies 或 includePluginDependencies 在 java 执行中使用它们 https://www.mojohaus.org/exec-maven-plugin/java-mojo.html#includePluginDependencies。includeProjectDependencies 选项默认启用(true)。
  • mvn exec:java您可以执行 exec-maven-plugin 而无需使用命令构建任何内容

指示:

要运行 exec-maven-plugin,您需要一个主类来运行。我假设你的项目中有一个。如果你不这样做 - 你需要用一个主类制作一个单独的项目。

  1. 创建一个空白的 Maven 项目。
  2. 在项目中添加 exec-maven-plugin 配置。设置主类
<build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
                <goals>
                    <goal>java</goal>
                </goals>
                <configuration>
                    <mainClass>pack.App</mainClass>
                </configuration>
        </plugin>
    </plugins>
</build>
  1. 将您的工件作为项目的依赖项包含在内
<dependencies>
    <dependency>
        <groupId>my.group</groupId>
        <artifactId>myartifact</artifactId>
        <version>12.3.45</version>
    </dependency>
</dependencies>
  1. 运行以从工件mvn exec:java执行com.my.package.MyMainClass主类my.group.myartifact

编辑

  • includeProjectDependencies 选项默认启用(true)
于 2019-09-16T16:39:03.153 回答