[英]Running a Maven project with many dependencies
我正在研究一个基于Maven的项目, 该项目具有很多依赖关系。 该项目通常是要在Eclipse中开发的,但我需要从命令行进行处理。
如何以理智的方式构建和执行项目? 类似于mvn run
,但是Maven当然不是用于运行Java项目的(出于某种原因)。
问题是在java的命令行上指定了所有依赖项,我什至不知道如何自动生成它。 我目前可以使用assembly:single maven插件(使用jar-with-dependencies描述符)来处理它,它将为我将依赖项打包到单个.jar中。
但是,确实存在很多依赖关系,并且组装阶段可能需要两分钟左右的时间,这极大地破坏了我的hack-test周期,因此我正在寻找其他方法以最小的构建开销来运行项目-请提出任何建议?
注意:一种可能是在Eclipse中运行一次并捕获Java命令行。 但是,这只是一次性的技巧,不是通用的解决方案,以防我稍后更改pom.xml
或从套件中转到另一个项目而不再使用Eclipse的情况。
看到这个问题: 如何使用Maven创建具有依赖关系的可执行JAR? 。 您可以在包阶段之前使用dependency-plugin在单独的目录中生成所有依赖项,然后将其包含在清单的类路径中。
关于查找项目依赖项-您可以使用Maven依赖项插件
http://maven.apache.org/plugins/maven-dependency-plugin/list-mojo.html
如果你想把它们归档,就像
mvn dependency:list > dependencies.txt
我看到了三种解决方案:
onejar-maven- plugin-使用jar-with-dependencies描述符比assemlby更快
使用onejar-maven-plugin,您将获得一个不错的干净的超级jar,其中包含依赖项jar。
Spring Boot Maven插件 -但这专用于Spring项目
具有自定义描述符的Maven程序集插件 。 此自定义描述符应将所有依赖项都捕获到lib
文件夹中,maven-jar-plugin应根据此新位置在Manifest.fm中设置Class-Path
。 之后,您可以简单地执行您的程序或使用lib文件夹压缩jar。
之后,可以使用一个命令在计算机或任何其他计算机上运行程序:
java -jar myjar.jar
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.