我试图让一个maven管理项目,在命令行上运行。如何运行Maven生成JAR的CLI
我有一组在pom.xml依赖随后将其下载并安装在〜/ .m2目录/库/的。我已将必要的配置包含在我的pom中,以便将类路径添加到jar清单。
现在的问题是我试图这样运行jar:Java的罐子项目SNAPSHOT.jar。
的Java找不到下载的依赖关系(我假设,因为他们没有在清单中列出的路径?),但我不知道如何以最佳方式得到这个运行。
我试图让一个maven管理项目,在命令行上运行。如何运行Maven生成JAR的CLI
我有一组在pom.xml依赖随后将其下载并安装在〜/ .m2目录/库/的。我已将必要的配置包含在我的pom中,以便将类路径添加到jar清单。
现在的问题是我试图这样运行jar:Java的罐子项目SNAPSHOT.jar。
的Java找不到下载的依赖关系(我假设,因为他们没有在清单中列出的路径?),但我不知道如何以最佳方式得到这个运行。
选项1:
创建没有依赖的jar文件的JAR。所以,你需要告诉Java的类路径,所有的依赖罐子
java -cp /lcoation/of/dependency1.jar:/location/of/dependency2.jar:/location/of/dependency3.jar -jar project-SNAPSHOT.jar
选项2:
的更容易,更好的解决方案是使用AppAssembler
插件。它的作用是在包含
看看这里http://www.mojohaus.org/appassembler/appassembler-maven-plugin/
方案3:
如果你不希望所有的行李,只是想有一个jar-with-dependency
你可能想在这里提到How can I create an executable JAR with dependencies using Maven?
这将包含它内的所有依赖的罐子。
编辑1:对于选项1,Brad M提到,你可以使用dependency plugin所有项目的DEPS列表。 dependency:build-classpath
mvn exec:java -Dexec.mainClass="com.vineetmanohar.module.Main" -Dexec.classpathScope=runtime
你可以在这里找到更多的例子:3 ways to run Java main from Maven。
使用maven 3.0.4 不适用于我['ERROR]未知的生命周期阶段“.mainClass = my.Main” –
啊你可以坚持下去。 – Nishant
太棒了 - 这正是我所需要的。是否有任何警告与包装一切这样或一切都好。内存使用情况等? – Nick
没有什么。它非常简单的东西,与1.制作jar相同,2.将依赖项复制到repo文件夹中,3.编写一个类似于以下内容的shell脚本:'java -jar ../myapp.jar Mainclass -cp ../repo/ * .jar' – Nishant