项目开发过程中,可能会遇到合作方提供的非公开jar包资源,Maven项目使用时就得先处理一下,不然maven可不知道如何去找不在库中的Jar文件。
本文列出列三种方式,大家酌情使用。
1. 将jar包安装到本地repository
这种方法,自己开发没什么问题,如果团队开发,所有人都需要执行一次,有版本变化,所有人又得执行一次,比较不推荐
mvn install:install-file -Dfile=xx-jar.jar -DgroupId=org.fun -DartifactId=xx-jar -Dversion=1.0 -Dpackaging=jar
# --
2. 安装到Maven 私服 (推荐方法)
定义明确:groupId artifactId version packaging
指定内容:jar路径 要传入仓库的url 仓库的id
一般上传需要这个仓库的特定权限,要在setting.xml配置好这个仓库的认证:
<servers>
<server>
<id>for-releases</id>
<username>zhangsan</username>
<password>admin123</password>
</server>
</servers>
<profiles>
<profile>
<id>for-releases</id>
<repositories>
<repository>
<id>for-releases</id>
<name>local private nexus</name>
<url>http://192.168.10.88:8081/nexus/content/repositories/releases/</url>
</repository>
</repositories>
</profile>
</profiles>
命令行输入如下命令即可上传:
mvn deploy:deploy-file -DgroupId=org.fun -DartifactId=xx-jar -Dversion=1.0 -Dpackaging=jar -Dfile=/data/lib/xx-1.0.jar -Durl=http://192.168.10.88:8081/nexus/content/repositories/releases/ -DrepositoryId=for-releases
# --
3. 添加项目依赖repository ,在新机器上执行时就不用运行mvn install:install-file命令了
这种方式被称为 In project repository,在没有私服的情况下推荐使用。
在项目根目录下面创建一个lib目录,jar文件必须严格按本地repository的层级放入,即 /groupId/artifactId/version/artifactId-verion.jar,下面是引用方式
<repository>
<id>in-project</id>
<name>In Project Repo</name>
<url>file://${project.basedir}/lib</url>
</repository>
<dependency>
<groupId>org.fun</groupId>
<artifactId>xx-jar</artifactId>
<version>1.0</version>
</dependency>
本例中: lib/org/fun/xx-jar/1.0/xx-jar-1.0.jar
当Maven项目需要使用非公开的jar包时,可以采取三种方式处理:1) 安装到本地repository,适合个人开发但不便于团队协作;2) 安装到Maven私服,推荐方法,需要配置认证信息并执行上传命令;3) 在项目内创建lib目录,按repository层级放入jar,方便新机器部署。

8万+

被折叠的 条评论
为什么被折叠?



