我正在创建一个通用的 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/