Maven配置中repositories、distributionManagement、pluginRepositories用法及将已有jar包部署到私服
作者:Archie_java
这篇文章主要介绍了Maven配置中repositories、distributionManagement、pluginRepositories用法及将已有jar包部署到私服,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
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中央仓库没有,这时可以选择下载后上传私服
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。