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

时间:2012-10-05 15:15:59

标签: java maven command-line-interface

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

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

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

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

2 个答案:

答案 0 :(得分:5)

选项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. 依赖的罐子
  2. 创建的jar
  3. 执行它的shell / windows脚本
  4. 看看http://www.mojohaus.org/appassembler/appassembler-maven-plugin/

    选项3:
    如果您不想要所有行李,只想拥有一个jar-with-dependency 您可以在此处参考How can I create an executable JAR with dependencies using Maven?

    这将包含其中的所有相关jar。


    修改1:对于选项1,Brad M提到您可以使用dependency plugin获取所有项目代表的列表。 dependency:build-classpath

答案 1 :(得分:4)

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

您可以在此处找到更多示例:3 ways to run Java main from Maven