行家:无需实际构建任何东西即可执行

时间:2019-09-16 15:23:30

标签: java maven maven-exec-plugin

我在pom文件中有一个带有最终版本的项目,可以说12.3.45。 我之前已经为该版本构建了代码,所有构建的jar都在本地Maven存储库中。

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

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

1 个答案:

答案 0 :(得分: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配置。设置mainClass
<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)