搭建maven私服
搭建maven私服
配置环境变量
包括java、maven、nexus
上传相关文件,解压;配置环境变量到profile中
仓库组成
proxy、hosted、group、maven-
- proxy:是远程仓库的代理。比如说在nexus中配置了一个central repository的proxy,当用户向这个proxy请求一个artifact,
这个proxy就会先在本地查找,如果找不到的话,就会从远程仓库下载,然后返回给用户,相当于起到一个中转的作用。 - Hosted:是宿主仓库,用户可以把自己的一些构件,deploy到hosted中,也可以手工上传构件到hosted里。
比如说oracle的驱动程序,ojdbc6.jar,在central repository是获取不到的,就需要手工上传到hosted里,一般用来存放公司自己的jar包; - Group:是仓库组,在maven里没有这个概念,是nexus特有的。目的是将上述多个仓库聚合,对用户暴露统一的地址,这样用户就不需要在pom
中配置多个地址,只要统一配置group的地址就可以了右边那个Repository Path可以点击进去,看到仓库中artifact列表。不过要注意浏览器缓存,
当你的项目希望在多个repository使用资源时就不需要多次引用了,只需要引用一个group即可。 - maven-public: maven-central、maven-release和maven-snapshot三个库的合集。
- maven-release: 用来存放release版本的jar包。
- maven-snapshot: 用来存放snapshot版本的jar包。
上传jar到私服
认证
本地maven的settings.xml中找到server标签,添加认证的配置
<server>
<id>releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
本地项目的pom文件中添加私服的地址
<distributionManagement>
<repository>
<!--此id要与setting.xml里面server的id对应-->
<id>releases</id>
<name>releases Repository</name>
<url>http://192.168.xx.xx:8888/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<name>snapshots</name>
<url>http://192.168.xx.xx:8888/repository/maven-snapshots/</url>
<!-- URL可以点击仓库查看详情获取 -->
</snapshotRepository>
</distributionManagement>
发布项目到maven私服
步骤: clean --> deploy
如果pom.xml上版本是1.1-SNAPSHOT则会deploy到maven-snapshot,如果是1.1.RELEASE则会deploy到maven-release
打包时跳过单元测试
<!-- 打包跳过测试-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
注意: maven仓库的Deployment policy一定要设置成allow redeploy,否则会上传失败。
从私服下载jar包
添加仓库地址
<repositories>
<repository>
<id>releases</id>
<name>maven-public</name>
<url>http://192.168.xx.xx:8888/repository/maven-public/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
针对单个项目,这个可以添加到项目的pom.xml文件里,如果很多项目都需要可以添加到setting.xml文件中
项目中添加依赖
示例:
<dependency>
<groupId>com.narui</groupId>
<artifactId>kafka-spring-boot</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>