如何在CLI上运行maven生成的jar

我正在尝试在命令行上运行maven托管项目。

我在pom.xml中有一组依赖项,随后下载并安装在〜/ .m2 / repository /中。 我在我的pom中包含了必要的配置,以将类路径添加到jar清单中。

现在的问题是我正在尝试运行jar:java -jar project-SNAPSHOT.jar。

Java无法找到下载的依赖项(我假设因为它们在清单中没有路径列出?),但我不确定如何最好地运行它。

选项1:
创建的jar没有依赖的jar文件。 所以,你需要告诉java所有依赖jar所在的类路径

java -cp /lcoation/of/dependency1.jar:/location/of/dependency2.jar:/location/of/dependency3.jar -jar project-SNAPSHOT.jar 

选项2:
更简单,更好的解决方案是使用AppAssembler插件。 它的作用是将jar包装在包含的目录结构中

  1. 依赖jar子
  2. 创建的jar
  3. 用于执行它的shell / windows脚本

看看这里http://www.mojohaus.org/appassembler/appassembler-maven-plugin/

选项3:
如果你不想要所有的行李并且只想拥有一个jar-with-dependency你可能想在这里参考如何使用Maven创建一个带有依赖关系的可执行JAR?

这将包含其中的所有依赖jar。


编辑1:对于选项1, Brad M提到您可以使用依赖项插件获取所有项目的deps列表。 dependency:build-classpath

 mvn exec:java -Dexec.mainClass="com.vineetmanohar.module.Main" -Dexec.classpathScope=runtime 

您可以在此处找到更多示例: 从Maven运行Java main的3种方法 。