![cover](https://img-blog.csdnimg.cn/img_convert/e35648ac6ef71dd9322b7347291f4d4d.webp)
Maven配置中repositories、distributionManagement、pluginRepositories详解&将已有jar包部署到私服
repositorie 表示下载项目依赖库文件的maven仓库地址
1. repositorie 结构说明
repositorie 表示下载项目依赖库文件的maven仓库地址
<repositories>
<repository>
<!-- 仓库ID -->
<id>nexus</id>
<!-- 仓库名称 -->
<name>Nexus</name>
<!-- 仓库地址 -->
<url>http://192.168.1.x:xxxx/repository/maven-public/</url>
<!-- 仓库中版本为releases的构件 -->
<releases>
<!-- 是否支持更新-->
<enabled>true</enabled>
<!-- 构件更新的策略,可选值有daily, always, never, interval:X(其中的X是一个数字,表示间隔的时间,单位min),默认为daily-->
<updatePolicy>always</updatePolicy>
<!-- 校验码异常的策略,可选值有ignore, fail, warn -->
<checksumPolicy>warn</checksumPolicy>
</releases>
<!-- 仓库版本为snapshots的构件-->
<snapshots>
<!-- 是否支持更新-->
<enabled>true</enabled>
<!-- 同上 -->
<updatePolicy>always</updatePolicy>
<!-- 同上 -->
<checksumPolicy>warn</checksumPolicy>
</snapshots>
</repository>
</repositories>
如果是公司本地仓库,而且需要认证才能访问,需要在本地maven的conf\settings.xml文件中添加如下配置内容
<servers>
<server>
<id>nexus</id>
<username>admin</username>
<password>admin</password>
</server>
</servers>
2. distributionManagement 结构说明
distributionManagement 表示项目打包成库文件后要上传到仓库地址
<distributionManagement>
<!-- 正式版本 -->
<repository>
<uniqueVersion>false</uniqueVersion>
<!-- nexus服务器中用户名(settings.xml中<server>的id)-->
<id>releases</id>
<!-- 自定义名称 -->
<name>Releases Repository</name>
<url>http://192.168.1.x:xxxx/repository/maven-releases/</url>
<layout>default</layout>
</repository>
<!-- 快照 -->
<snapshotRepository>
<uniqueVersion>true</uniqueVersion>
<id>snapshots</id>
<name>Snapshots Repository</name>
<url>http://192.168.1.x:xxxx/repository/maven-snapshots/</url>
<layout>legacy</layout>
</snapshotRepository>
</distributionManagement>
如果是公司本地仓库,而且需要认证才能访问,也需要在本地maven的conf\settings.xml文件中添加如下配置内容(< repository >节点下的< id >对应setting.xml文件中的server的id)
<servers>
<server>
<id>releases</id>
<username>admin</username>
<password>admin</password>
</server>
<server>
<id>snapshots</id>
<username>admin</username>
<password>admin</password>
</server>
</servers>
3. pluginRepositories 结构说明
pluginRepositories 表示插件的下载仓库地址,字段和用法与repositories中的repository基本一致
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<name>Nexus</name>
<url>http://192.168.1.x:xxxx/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</snapshots>
</pluginRepository>
</pluginRepositories>
4. 常用的maven仓库命令
上传本地仓库
mvn install:install-file
-DgroupId=com.xxx
-DartifactId=xxx-sdk
-Dversion=1.0.0
-Dpackaging=jar
-Dfile=xxx-xxx-sdk-1.0.0.jar
参数说明
mvn install:install-file
-DgroupId=上面的groupId
-DartifactId=上面的artifactId
-Dversion=上面的version
-Dpackaging=jar
-Dfile=jar包的位置
上传远程仓库
mvn -X deploy:deploy-file
-Dmaven.test.skip=true
-DgroupId=XXX.XXX
-DartifactId=XXX
-Dversion=XXX
-Dpackaging=jar
-Dfile=XXX.jar
-DpomFile=pom.xml
-Durl=http://用户名:密码@远程私服仓库地址
阿里云仓库地址
https://maven.aliyun.com/mvn/guide
maven中央仓库地址
https://repo1.maven.org/maven2/
将已有jar包部署到私服
一、环境准备
本地电脑已安装maven
私服已经搭建好
私服对应仓库和账号权限开启,允许 deploy jar 包上去
二、meven私服连接配置
需要在./conf/setting.xml中配置需要远程上传库的地址,用户以及密码(如果需要认证):
<servers>
<server>
<id>maven-releases</id>
<username>zm</username>
<password>123456</password>
</server>
</servers>
三、使用deploy命令上传
mvn deploy:deploy-file -Dmaven.test.skip=true -Dfile=E:\Work\MyWorkspace\idea\office-
pdf-util\src\main\resources\libs\aspose-words-16.8.0-jdk16.jar -DgroupId=aspose-words -
DartifactId=aspose-words -Dversion=16.8.0 -Dpackaging=jar -DrepositoryId=maven-releases
-Durl=http://192.168.0.167:8081/repository/maven-releases
如果要在命令行临时指定setting.xml
mvn deploy:deploy-file --settings C:\Users\Liu\.m2\settings-zhiyi.xml -
Dmaven.test.skip=true -Dfile=E:\Work\MyWorkspace\idea\office-pdf-
util\src\main\resources\libs\aspose-words-16.8.0-jdk16.jar -DgroupId=aspose-words -
DartifactId=aspose-words -Dversion=16.8.0 -Dpackaging=jar -DrepositoryId=maven-releases
-Durl=http://192.168.0.167:8081/repository/maven-releases
各参数代表含义为:
-Dmaven.test.skip=true //跳过编译、测试
-Dfile=D:\work\thirdjar\aspose-words-16.8.0.jar //jar包文件地址,绝对路径
-DgroupId=pri.roy.mvn.test //gruopId--pom坐标,自定义
-DartifactId=mvn-api //artifactId--pom坐标,自定义
-Dversion //版本号,自定义
-Dpackaging //打包方式
-DrepositoryId //远程库ID
-Durl //远程库地址
四、结果截图如下
该操作常用来解决的问题
- 项目依赖第三方jar包,但maven中央仓库没有,这时可以选择下载后上传私服
![Logo](https://devpress.csdnimg.cn/79de2bf0b7994defa4242ef90d5513fa.jpg)
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)