Nic*_*ick 9 java command-line-interface maven
我正在尝试让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
Run Code Online (Sandbox Code Playgroud)
选项2:
更简单,更好的解决方案是使用AppAssembler插件.它的作用是将jar包装在包含的目录结构中
看看这里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
Run Code Online (Sandbox Code Playgroud)
您可以在此处找到更多示例:从Maven运行Java main的3种方法。