java - Maven依赖可以执行吗?

标签 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 .

最佳答案

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

但在这种情况下,您不需要将其作为可执行文件调用。这比调用一些 java 代码要简单得多。

可执行 jar 基本上是一个包含至少一个类的 jar,其中包含有效的 main 方法(加上一个 list 以了解哪个类是主类)。

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

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

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

关于java - Maven依赖可以执行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28632491/

相关文章:

java - m2e:使用 exec-maven-plugin 生成的代码

java - 按位运算符|和+一样吗?

java - 我可以使用 mockito 来匹配具有自动更新时间戳的对象吗?

java - 如何修复java中的NoSuchMethodError

java - 单击按钮时引发抽象方法错误

Oracle JDBC ojdbc6 Jar 作为 Maven 依赖项

java - 列出 Clojure 目录中的文件

java - 在java中读取MNIST数据库非常慢

java - 部署 WAR 时出现 NoClassFoundException

java - Eclipse J2EE Preview 从 .metadata 目录而不是 m2e-wtp/web-resources 读取未过滤的资源