什么是私服?
用大白话来说,私服其实跟导入阿里云依赖是一个道理,只不过是自己家公司的服务器,将项目需要用得到的东西开发出来然后上传到私有服务器中,项目成员配置好私服的路径和自己的账号密码验证信息,使用maven导入依赖时就可以访问私服中的依赖。
私有仓库的作用: 私服通常指的是一个公司内部搭建的私有Maven仓库(如Nexus、Artifactory等),用于存储和管理自己公司开发的项目依赖包、第三方库、内部的构件等。它的主要好处是能控制依赖包的版本、确保代码的可复用性和安全性,还可以提高构建效率。
私有仓库的配置与访问: 成员在开发时,首先需要配置好Maven项目的settings.xml文件,指定私服的地址(通常在<mirrors>或者<repositories>节点中配置),并且为私服设置相应的用户名和密码验证。这个过程与配置公共Maven中央仓库(如maven-central或阿里云镜像)类似,唯一不同的是这里的仓库是公司内部的,路径和认证信息由公司提供。
上传构件到私服: 开发者可以通过Maven的deploy命令,将本地项目的构件(如JAR包、POM文件等)上传到私服中。这种操作需要配置好pom.xml中的distributionManagement节点,指定上传目标为公司私服。
使用私服中的依赖: 项目成员通过配置私服地址之后,在项目中引入依赖时,Maven会首先尝试从私服中获取。如果私服中没有所需的依赖,Maven会再去配置的公共仓库(如中央仓库)寻找。如果依赖是公司内部开发的,通常只能在私服中找到。
版本控制与管理: 私服的另一个好处是可以对依赖进行版本控制和审批管理。例如,可以规定哪些版本是稳定的,哪些是测试版本,从而保证团队内共享的构件质量。
开发时如何配置私服?
私服配置说明
访问私服:http://192.168.150.101:8081
访问密码:admin/admin
使用私服,需要在maven的settings.xml配置文件中,做如下配置:
1. 需要在 **servers** 标签中,配置访问私服的个人凭证(访问的用户名和密码)
<server>
<id>maven-releases</id>
<username>admin</username>//换成自己的用户名
<password>admin</password>//换成自己的密码
</server>
<server>
<id>maven-snapshots</id>
<username>admin</username>
<password>admin</password>
</server>
2. 在 **mirrors** 中只配置我们自己私服的连接地址(如果之前配置过阿里云,需要直接替换掉)
<mirror>
<id>maven-public</id>
<mirrorOf>*</mirrorOf>
<url>http://192.168.150.101:8081/repository/maven-public/</url>
</mirror>
3. 需要在 **profiles** 中,增加如下配置,来指定snapshot快照版本的依赖,依然允许使用
<profile>
<id>allow-snapshots</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<id>maven-public</id>
<url>http://192.168.150.101:8081/repository/maven-public/</url>//换成自己的地址
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</profile>
4. 如果需要上传自己的项目到私服上,需要在项目的pom.xml文件中,增加如下配置,来配置项目发布的地址(也就是私服的地址)
<distributionManagement>
<!-- release版本的发布地址 -->
<repository>
<id>maven-releases</id>
<url>http://192.168.150.101:8081/repository/maven-releases/</url>
</repository>
<!-- snapshot版本的发布地址 -->
<snapshotRepository>
<id>maven-snapshots</id>
<url>http://192.168.150.101:8081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
5. 发布项目,直接运行 deploy 生命周期即可 (发布时,建议跳过单元测试)