一、 步骤
有时候,项目中打好的jar包或pom文件需要上传到远程仓库,步骤总结如下:
- 安装好maven,网上有很多教程,默认已安装
- 工程中的settings.xml增加相应的server账号密码:
<servers> <server> <id>duke_Release</id> <username>maven-user</username> <password>maven-user@duke2021</password> </server> <server> <id>duke_Snapshot</id> <username>maven-user</username> <password>maven-user@duke2021</password> </server> </servers>
3. pom文件中新增以下配置
<distributionManagement> <repository> <id>duke_Release</id> <!--四个id 要保持一致--> <url>http://cloudartifact.ipd.duke.com/artifactory/maven-public/</url> <!-- distributionManagement里面url可改为自己的私仓地址--> </repository> <snapshotRepository> <id>duke_Snapshot</id> <url>http://cloudartifact.ipd.duke.com/artifactory/maven-public/</url> </snapshotRepository> </distributionManagement>
4. 执行传包命令
详细信息可参考官网文档,命令格式如下:
mvn deploy:deploy-file -DgroupId=<group-id> \ -DartifactId=<artifact-id> \ -Dversion=<version> \ -Dpackaging=<type-of-packaging> \ -Dfile=<path-to-file> \ -DrepositoryId=<id-to-map-on-server-section-of-settings.xml> \ -Durl=<url-of-the-repository-to-deploy>
举例说明,标红的部分,需要根据每个包的路径和版本等修改
mvn deploy:deploy-file -Dfile=D:\data\.m2\repository2\com\xxx\xxx\duke\duke-basic\1.0.1-SNAPSHOT\duke-basic-1.0.1-SNAPSHOT.jar -Dpackaging=jar -DgroupId=com.xxx.xxx.duke -DartifactId=duke-basic -Dversion=1.0.1-SNAPSHOT -DrepositoryId=dukeServiceSnapshot -Durl=http://cmc.xxx.dragon.tools.xxx.com/artifactory/maven-public |
二、踩坑总结
1. mvn deploy报错报错org.apache.maven.plugin.MojoFailureException
解决方法:将要安装的jar和pom copy到其它目录再安装,只要不在本地仓库目录都应该可以.
2. 如何删除已经发布到 mavenCentral 远程仓库中的包
官方解释:你可以重新发一个新版本,但是对于已经发布的版本,不好意思你不能修改。
3. maven进行compile操作时Invalid packaging for parent POM,must be pom but is_jar这个错误
查看自己父模块和子模块的POM.XML文件,有没有指定打包方式,一般MAVEN的工程的父模块的POM.XML的打包方式为pom方式,子模块工程的POM.XML的打包方式为jar包方式,所以应加入如下代码分别到父子POM.XML文件里。
<packaging>pom</packaging> -- 父pom.xml <packaging>jar</packaging> -- 子pom.xml
标签:duke,xxx,jar,maven,pom,com 来源: https://www.cnblogs.com/dukedu/p/15852236.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。