使用命令行的方式上传,命令为:
mvn deploy:deploy-file -Dmaven.test.skip=true -Dfile=D:\xxx-1.0.2-SNAPSHOT.jar -DgroupId=com.xxx.oversea -DartifactId=cms-adapter -Dversion=1.0.2-SNAPSHOT -Dpackaging=jar -DrepositoryId=oversea-snapshot -Durl=http://af.xxx.com.cn:80/artifactory/oversea-snapshot
命令解释:
1.DgroupId和DartifactId构成了该jar包在pom.xml的坐标,项目就是依靠这两个属性定位。自己起名字也行
2.Dversion为该jar包的版本号
3.Dfile表示需要上传的jar包的绝对路径,一般是本地路径
4.Durl为jfrog的maven仓库地址
5.DrepositoryId为仓库名
maven中settings配置:
需要在servers节点,配置仓库名的用户名和密码
<!-- 业务部jar包发布认证 -->
<servers>
<server>
<id>oversea-snapshot</id>
<username>oversea</username>
<password>oversea</password>
</server>
<server>
<id>oversea-release</id>
<username>oversea</username>
<password>oversea</password>
</server>
</servers>
然后往私服上传jar包的时候,会找到settings里面配置的server中的id是否和DrepositoryId对应,如果对应就拿到用户名和密码进行上传jar包。
常见错误:
Failed to deploy artifacts: Could not transfer artifact com.hikvision.oversea:cms-adapter:jar:1.0.2-20200326.035254-2 from/to oversea-snapshot1 (http://af.xxx.com.cn:80/artifactory/oversea-snapshot): Failed to transfer file http://af.xxx.com.cn:80/artifactory/oversea-snapshot/com/xxx/oversea/cms-adapter/1.0.2-SNAPSHOT/cms-adapter-1.0.2-20200326.035254-2.jar with status code 401 -> [Help 1]
出现401,就是DrepositoryId 和server里面配置的用户名和密码错误才导致的,所以此时主要是检查DrepositoryId是否正确,用户名和密码是否正确。
另外还要看你修改的settings文件是不是配置的maven,意思就是使用win+r输入cmd回车,输入mvn -v查看maven的地址和你修改的settings文件是不是一个,由于我的电脑有多个maven版本,所以造成了错误,这个是不应该发生的,在此记录一下。