部署一个项目到私服
-
在父项目中的
pom.xml
加入<distributionManagement> <repository> <id>releases</id> <url>http://119.333.102.151:8081/repository/maven-releases/</url> </repository> <snapshotRepository> <id>snapshots</id> <url>http://119.333.102.151:8081/repository/maven-snapshots/</url> </snapshotRepository> </distributionManagement>
-
在
settings.xml
中加入账号密码<servers> <server> <id>releases</id> <username>admin</username> <password>XXXXX</password> </server> <server> <id>snapshots</id> <username>admin</username> <password>XXXXX</password> </server> </servers>
-
配置好部署的地址和账号密码后,直接执行下面命令即可
mvn deploy
如果项目pom里面的version以SNAPSHOT结尾则自动进入maven-snapshots仓库,否则进入maven-releases正式仓库
注意
-
部署子项目的时候,务必把父项目一并部署,不然在别人引用的时候会报错。提示依赖找不到。
Could not find artifact cn.com.minivision:idc-sdk-kms:pom:2.0.3 in XXXX
-
不允许部署单个子项目。如果实在不想完整的部署一个父项目,可以跳过部署某个子项目到私服。在某个不想部署的子项目的
pom.xml
中加入如下:<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-deploy-plugin</artifactId> <version>X.Y</version> <configuration> <skip>true</skip> </configuration> </plugin>
-
实在是想单独部署一个子项目,那推荐用打完整jar包,手动上传私服且禁止生成
pom
的方式。不到万不得已不用这样的方式。因为这种不能完美解决问题。会给以后项目的依赖冲突埋下隐患。
这样的话maven第一次下载依赖的时候依然会报
Could not find artifact
,但是刷新第二次的话会通过。因为它第一次报错的时候依然会从远程私服下载jar
到本地m2
仓库。第二次刷新的时候,因为优先从本地查找,就直接走本地引用不会报错了。
部署第三方Jar到私服(尽量不要用)
-
登录私服网页地址
http://119.333.102.151:8081/#browse/upload
admin
XXXX -
选择上传到
maven-local
-
上传一定不能让私服自动生成空的
pom
-
上传后可以在仓库中浏览到没有生成空的
pom
,只有jar文件和记录版本的元数据文件。
注意
- 可以用
mvn deploy:deploy-file
命令去上传jar包到私服,不过一定要加上-DgeneratePom=false
禁止生成空的pom
。细节可以参考官方文档。
连接公司私服下载依赖
maven的settings.xml
文件参考如下
公司的私服镜像地址http://119.333.102.151:8081/repository/group-maven/
该镜像仓库包含了公司本地所有的仓库、中央仓库、阿里的Spring仓库、谷歌仓库等
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!-- <localRepository>D:\jdk\apache-maven-3.6.3\.m2\repository</localRepository>-->
<servers>
<server>
<id>releases</id>
<username>admin</username>
<password>XXXXX</password>
</server>
<server>
<id>snapshots</id>
<username>admin</username>
<password>XXXXX</password>
</server>
</servers>
<mirrors>
<mirror>
<id>default</id>
<name>minivisionmaven</name>
<url>http://119.333.102.151:8081/repository/group-maven/</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
</settings>