博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
向Maven的本地库中添加jar文件
阅读量:5790 次
发布时间:2019-06-18

本文共 1919 字,大约阅读时间需要 6 分钟。

有时我们要用的 maven 依赖项在官方repo库中找不到,然而我们从其他渠道获得了依赖项中的所有jar文件,本文记录了如何向本地库添加jar文件。

从复杂到简单,有三种方法:

  1. 使用 maven 的仓库管理器(例如Nexus)来架设一个本地仓库服务器
  2. 使用指令 mvn install:install-file 将jar文件安装到本地仓库
  3. 通过项目pom配置文件引入

第一种方法有利于团队开发,内容多一点,我打算单独用一篇文章记录。这里介绍其他两种方法:

 

使用指令 mvn install:install-file 将jar文件安装到本地仓库

语法规范:

 
mvn install:install-file -Dfile=
<
path-to-file
>
-DgroupId=
<
group-id
>
-DartifactId=
<
artifact-id
>
-Dversion=
<
version
>
-Dpackaging=
<
packaging
>
-DgeneratePom=true Where:
<
path-to-file
>
the path to the file to load
<
group-id
>
the group that the file should be registered under
<
artifact-id
>
the artifact name for the file
<
version
>
the version of the file
<
packaging
>
the packaging of the file e.g. jar

我们以文件<not-yet-commons-ssl-0.3.17.jar>为例:

 
mvn install:install-file -Dfile=e:\not-yet-commons-ssl-0.3.17.jar -DgroupId=org.apache.commons -DartifactId=not-yet-commons-ssl -Dversion=0.3.17 -Dpackaging=jar -DgeneratePom=true

 

通过项目pom配置文件引入

编辑项目pom文件,在依赖项中增加条目,并指定<scope>和<systemPath>。

还是以文件<not-yet-commons-ssl-0.3.17.jar>为例:

 
<
dependency
>
<
groupId
>
org.apache.commons
</
groupId
>
<
artifactId
>
not-yet-commons-ssl
</
artifactId
>
<
version
>
0.3.17
</
version
>
<
scope
>
system
</
scope
>
<
systemPath
>
e:\not-yet-commons-ssl-0.3.17.jar
</
systemPath
>
</
dependency
>

等等,编译后出现一个警告:

[WARNING] 'dependencies.dependency.systemPath' for org.apache.commons:not-yet-commons-ssl:jar should use a variable instead of a hard-coded path e:\not-yet-commons-ssl-0.3.17.jar @ line 35, column 16

[WARNING]
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING]
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.

原来是 maven 苦口婆心地告诉我们不要使用诸如 C:\Windows 这样的绝对路径,而应使用 ${java.home} 这样的相对路径(变量),否则降低了编译可重现性,并威胁我们以后可能不再支持这种方式。

嗯,我们可以建立一个 maven 仓库的环境变量来消除这个警告,如果你觉得有这个必要。

转载于:https://www.cnblogs.com/gugia/p/5006460.html

你可能感兴趣的文章
LeetCode36.有效的数独 JavaScript
查看>>
Scrapy基本用法
查看>>
PAT A1030 动态规划
查看>>
自制一个 elasticsearch-spring-boot-starter
查看>>
【人物志】美团前端通道主席洪磊:一位产品出身、爱焊电路板的工程师
查看>>
一份关于数据科学家应该具备的技能清单
查看>>
机器学习实战_一个完整的程序(一)
查看>>
Web框架的常用架构模式(JavaScript语言)
查看>>
如何用UPA优化性能?先读懂这份报告!
查看>>
这些Java面试题必须会-----鲁迅
查看>>
Linux 常用命令
查看>>
CSS盒模型
查看>>
ng2路由延时加载模块
查看>>
使用GitHub的十个最佳实践
查看>>
脱离“体验”和“安全”谈盈利的游戏运营 都是耍流氓
查看>>
慎用!BLEU评价NLP文本输出质量存在严重问题
查看>>
JAVA的优势就是劣势啊!
查看>>
ELK实战之logstash部署及基本语法
查看>>
帧中继环境下ospf的使用(点到点模式)
查看>>
BeanShell变量和方法的作用域
查看>>