繁体   English   中英

运行具有许多依赖项的Maven项目

[英]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 exec插件

mvn exec:java -Dexec.mainClass="com.example.Main"

如果您经常这样做,则当然可以通过插件配置进行配置。

看到这个问题: 如何使用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM