Maven依赖可以执行吗?

时间:2015-02-20 15:27:17

标签: java maven

我正在创建一个通用的utils maven项目。我已将此utils项目作为依赖项添加到我的主maven项目中。看起来我可以在我的utils pom中使用插件来生成可执行jar。如果jar是可执行的,我可以通过添加它作为依赖项在我的主项目中运行它吗?如果可以,如何将依赖关系的路径添加到exec-maven-plugin

main_pom.xml

<plugin>
 <groupId>org.codehaus.mojo</groupId>
 <artifactId>exec-maven-plugin</artifactId>
 <version>1.2.1</version>
 <executions>
  <execution>
   <id>default-cli</id>
   <goals>
    <goal>exec</goal>
   </goals>
   <configuration>
    <executable>java</executable>
    <arguments>
     <argument>-jar</argument>
     <!-- How can I get the dependency path here? -->
     <argument>path/to/executable-dependency-jar/name.jar</argument>
    </arguments>
   </configuration>
  </execution>
 </executions>
</plugin>

为方便起见,我希望它作为依赖项。但我不知道依赖项是否可执行。而且我不知道如何在xml中获得如上所示的依赖路径。我的想法是:

  • 添加可执行的依赖项。
  • 添加maven exec插件来运行 可执行的依赖关系,如上所示。
  • 当我想要我的工具时,我跑了 只需要执行mvn exec:exec

1 个答案:

答案 0 :(得分:1)

不确定你要做什么,但你可以拥有一个可执行jar,并在另一个项目中使用它。

但在这种情况下,您不需要将其称为可执行文件。这样就可以简单地调用一些java代码。

可执行jar基本上是一个jar,至少有一个类包含一个有效的main方法(加上一个清单来知道哪个类是主类)。

您可以在Java代码中使用此类,而无需“退出”jvm,并将jar用作可执行文件。

然而,您可以从外部(即从命令行)调用可执行jar。

通常,您有一个业务方法doStuff(某些签名),您可以从任何Java代码(这可能是一个静态方法)调用,主要方法只是解析命令行参数并调用doStuff方法。