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

Nic*_*ick 9 java command-line-interface maven

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

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

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

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

Nis*_*ant 5

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

    java -cp /lcoation/of/dependency1.jar:/location/of/dependency2.jar:/location/of/dependency3.jar -jar project-SNAPSHOT.jar
Run Code Online (Sandbox Code Playgroud)

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

  1. 依赖罐子
  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

  • 对于选项 1,使用 [依赖插件](http://maven.apache.org/plugins/maven-dependency-plugin/build-classpath-mojo.html) 获取所有项目 dep 的列表。`依赖项:构建类路径` (2认同)

mes*_*nio 5

mvn exec:java -Dexec.mainClass="com.vineetmanohar.module.Main" -Dexec.classpathScope=runtime  
Run Code Online (Sandbox Code Playgroud)

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