maven 安装本地jar

1.问题与选择

Maven是一种非常通用的工具,其可用的公共存储库首屈一指。 但是,总会有一个不在任何地方托管的工件,或者托管该工件的存储库有依赖的风险,因为当您需要它时,它可能不会启动。 发生这种情况时,有几种选择:

  • 硬着头皮安装完整的版本库管理解决方案, 例如Nexus
  • 尝试将工件上传到更知名的公共存储库之一
  • 使用Maven插件在本地安装工件

Nexus当然是更成熟的解决方案,但也更复杂 。 设置一个实例来运行Nexus,设置Nexus本身,配置和维护它对于使用单个jar这样的简单问题来说可能是过分的。 但是,如果这种情况(托管自定义工件)很常见,那么存储库管理器就很有意义。

将工件直接上载到公共存储库或直接在Maven Central中也是一种很好的解决方案,但是通常很长 。 另外,该库可能根本没有启用Maven,这使得处理过程变得更加困难,因此,现在就不能使用工件就不是一个现实的解决方案。 剩下的第三个选择是-在源代码管理中添加工件并使用maven插件-在这种情况下, maven-install-plugin可以在构建过程需要它之前在本地安装它 。 到目前为止,这是最简单,最可靠的选项。

2.使用

让我们从将工件安装到本地存储库所需的完整配置开始:

<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-install-plugin</artifactId><version>2.4</version><configuration><groupId>org.somegroup</groupId><artifactId>someartifact</artifactId><version>1.0</version><packaging>jar</packaging><file>${basedir}/dependencies/someartifact-1.0.jar</file><generatePom>true</generatePom></configuration><executions><execution><id>install-jar-lib</id><goals><goal>install-file</goal></goals><phase>validate</phase></execution></executions>
</plugin>

现在,让我们分解并分析此配置的详细信息。

2.1。 工件信息

工件信息定义为<configuration>元素的一部分。 实际语法与声明依赖项非常相似– groupIdartifactIdversion元素。 配置的下一部分需要定义工件的包装 -指定为jar 。 接下来,我们需要使用Maven中提供属性,提供要安装的实际jar文件的位置 -这可以是绝对文件路径,也可以是相对路径。 在这种情况下, $ {basedir}属性表示项目的根,即pom.xml文件所在的位置。 这意味着someartifact-1.0.jar文件需要放在根目录下的/ dependencies /目录中。 最后,还有一些其他可选详细信息也可以配置。

2.2。 行刑

安装文件目标的执行绑定到标准Maven 构建生命周期中的验证阶段 。 这样一来,便可以在生命周期的最开始就安装工件,然后在下一个编译阶段实际需要该工件。 一旦执行了编译阶段,就可以将我们的someartifact-1.0.jar正确地安装在本地存储库中,就像从Maven Central本身中检索到的任何其他工件一样。

2.3。 生成pom与提供pom

是否需要为工件提供pom.xml文件的问题主要取决于工件本身的运行时依赖性 。 简而言之,如果工件在其他jar上具有运行时相关性,则这些jar也将需要在运行时出现在类路径上。 使用简单的工件应该不会有问题,因为它在运行时可能没有依赖关系(依赖关系图中的叶子)。 安装文件目标中的generatePom选项足以满足以下这些工件:

<generatePom>true</generatePom>

但是,如果工件更加复杂并且确实具有非平凡的依赖关系 ,那么,如果这些依赖关系尚未存在于类路径中,则必须添加它们。 一种方法是通过在项目的pom文件中手动定义这些新的依赖项。 更好的解决方案是提供一个自定义pom.xml文件以及已安装的工件:

<generatePom>false</generatePom>
<pomFile>${basedir}/dependencies/someartifact-1.0.pom</pomFile>

这将使Maven可以解析此自定义pom.xml中定义的工件的所有依赖关系,而不必在项目的主pom文件中手动定义它们。

3.结论

本文通过使用maven-install-plugin在本地安装,介绍了如何使用不在Maven项目中任何地方托管的jar。

参考:在baeldung博客上,从我们的JCG合作伙伴 Eugen Paraschiv 使用Maven安装本地jar 。

翻译自: https://www.javacodegeeks.com/2013/04/install-local-jar-with-maven.html

maven 安装本地jar

maven 安装本地jar_使用Maven安装本地jar相关推荐

  1. maven私服、将项目发布到maven私服、从私服下载jar到本地仓库、将第三方jar安装到本地仓库和maven私服

    上面启动start时,jdk1.9报错,解决方法参考:https://blog.csdn.net/qq_33638719/article/details/83064664 访问http://local ...

  2. Maven学习笔记(二) :Maven的安装与配置

    在Windows上安装Maven:  1.  首先检查安装JDK 通过命令行运行命令:echo %JAVA_HOME%和java  -version,能够查看当前java的安装文件夹及java的版本号 ...

  3. linux下织梦cms安装环境配置文件,Mac本地环境配置以及安装织梦CMS,增加新的坑解决办法...

    Mac上其实已经自带了Apache和PHP,只是默认关闭的.开启一下就行了. Apache配置 apache已经自带了,只需在"终端"输入命令开启下就行了. ​​​开启apache ...

  4. maven安装以及eclipse配置maven

    http://jingyan.baidu.com/article/295430f136e8e00c7e0050b9.html 必须先下载并安装JDK,配置JDK的环境变量JAVA_HOME,否则mav ...

  5. Spark安装及其sbt和maven 打包工具安装

    一.安装准备 需要先安装hadoop,Java JDK,采用 Hadoop(伪分布式)+Spark(Local模式) 的组合. spark和sbt,maven的版本:spark-2.4.5-bin-w ...

  6. 【Maven】Eclipse中的Maven项目安装与配置

    上一篇文章我们了解到了Maven的基本信息和如何在电脑本地安装Maven,这篇文章主要介绍如何在Eclipse关联Maven的配置和本地仓储地址,并且如何创建一个Maven项目.关联依赖包等. 一.关 ...

  7. 使用Intellij Idea创建第一个SpringBoot+MyBatis+MySql项目并运行(附安装教程),使用Maven构建项目并管理第三方jar

    Intellij Idea 背景 开发工具及主要框架 Maven 下载安装 settings.xml修改 IDEA配置Maven 注册私有jar Maven打包 MySql安装 配置环境变量 Inte ...

  8. eclipse手动pom本地包_eclipse手动添加本地jar包到本地maven仓库

    在使用maven进行构建项目时,有时候中央仓库不包含所需的jar包,就需要下载到本地后手动添加到本地仓库中.这里介绍下利用eclipse进行本地jar安装到maven本地仓库. 在Eclipse项目中 ...

  9. Maven安装配置以及检查是否安装成功

    Maven安装以及查看是否安装成功 1.准备工作 电脑上安装了jdk1.7以上的版本 Maven安装包 下载地址 Windows操作系统(本人是Windows操作系统) 2.解压Manen安装包 安装 ...

最新文章

  1. android中的回调
  2. mysql无法启动无法停止_Centos7以上的版本 mysql 无法启动,无法停止问题
  3. 免费学python的软件-此贴告诉你:为啥shell脚本人,不建议学python
  4. ios开发ocr识别_车牌识别技术
  5. 汽车之家10周年办演唱会,厂商们怎么看?
  6. Ubuntu apt-get 卸载命令
  7. TableStore实战:DLA+SQL实时分析TableStore
  8. header里面加值如何去掉引号_用ods tagsets.rtf 产生的表,怎么去掉页尾处的空白?...
  9. Fedora 18在ASUS N6系列电脑上以太网卡驱动的安装
  10. 最新升学e网通JS逆向分析
  11. 为什么有人说“穷人玩股票一般都会赔”?
  12. 多文件上传组件FineUploader使用心得
  13. Linux部署Oracle
  14. JQuery blockUI 的使用方法
  15. android优酷视频黑屏,为什么优酷视频黑屏?优酷视频黑屏的原因与解决方法
  16. 使用JS将PDF文档转成图片,一页文档对应一张图片,并支持将图片批量导出!
  17. raid硬盘速度测试软件,RAID 0模式下固态硬盘性能测试
  18. Microsoft Excel 教程:如何在 Excel 中创建新工作簿、插入或删除工作表?
  19. 【转】四种主流温度传感器的优缺点比较
  20. 1273-宣传墙(状压dp )

热门文章

  1. mybatis源码阅读(四):mapper(dao)实例化
  2. 从理论知识到落地能力,你欠缺了什么?
  3. Java IO: 流
  4. 算法六之直接插入排序
  5. C++描述杭电OJ 2005.第几天? ||
  6. bootstrap样式代码案例
  7. Hibernate使用最新的MySQL8.+版本出现的问题!
  8. pycharm 的version controller
  9. 收敛和发散思维如何被用作解决问题的手段
  10. AQS的细节--自用,非正常教程