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

时间:2014-07-22 16:18:59

标签: java maven executable-jar execution

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

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

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

exec:java plugin通过设置JVM类路径以便依赖性可用,可以很好地为本地项目工作。用户不必担心JAR或.class文件位置等。不幸的是,从我所知道的,它还需要一个封闭的Maven项目,所以它不能在任意命令行提示符下使用。

2 个答案:

答案 0 :(得分:3)

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

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

正如@DaveNewton所说,你应该能够设置一个非常小的pom.xml,它具有相关jar文件的依赖关系,以及exec-maven插件。我担心它不会比那更简单。

答案 1 :(得分:2)

与Maven 3配合使用的hacky解决方案是将Maven依赖插件与Maven帮助插件结合使用来解析本地存储库路径:

three.js mesh