直接从Maven存储库执行JAR文件

thk*_*ala 7 java executable-jar execution maven

假设我们有一个Java 应用程序,而不是一个可以通过Maven central获得的库.例如,一个这样的项目是jol,它在Maven central中有相应的CLI接口.

据我所知,与库的主要区别在于相应的JAR文件包含一个具有适当main()方法的类,以及可选Main-Class:的JAR清单中的相关头.如果将此类工件用作项目的依赖项,Maven将很乐意将JAR文件及其依赖项下载到本地存储库,就像对任何其他工件一样.

是否可以使用Maven直接执行这样的应用程序,而无需设置Maven项目?

通过设置JVM类路径以使依赖项可用,该exec:java插件可以很好地用于本地项目.用户不必担心JAR或.class文件位置等.不幸的是,从我所知道的,它还需要一个封闭的Maven项目,因此不能从任意命令行提示中使用它.

Gre*_*eek 4

不,Maven 不会做你所要求的事情。它是一个构建工具,旨在基于描述项目的 pom.xml 文件构建 Java 项目。

因此,如果没有 pom.xml 文件,就无法运行 Maven 构建。如果您有一个 pom.xml,那么根据定义,您已经“设置了一个 Maven 项目”。

正如 @DaveNewton 所说,您应该能够设置一个非常小的 pom.xml ,其中包含相关 jar 文件的依赖项和 exec-maven 插件。恐怕事情不会比这更简单了。