如何在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包装在包含的目录结构中
- 依赖jar子
- 创建的jar
- 用于执行它的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种方法 。