引言
在上一节《淘东电商项目(08) -Docker搭建Maven私服仓库》成功的在Docker上搭建Maven私服。
代码已提交至Github,有兴趣的同学可以下载来看看:
https://github.com/ylw-github/maven-updown-project.git
本文继续讲解分布式基础设施环境的搭建,主要讲解如何把jar包上传到Maven私服仓库,以及如何从Maven私服仓库下载上传的jar包。
本文目录结构:
l____引言
l____ 1. 常用的两种Maven仓库
l____ 2. 配置Maven仓库
l________ 2.1 新增Maven仓库
l________ 2.2 创建用户
l________ 2.3 配置本地maven仓库
l____ 3. 上传jar包到Maven私服仓库
l________ 3.1 新建Maven工程
l________ 3.2 上传jar包
l____ 4. 从Maven私服仓库下载jar包
l________ 4.1 新建Maven工程
l________ 4.2 下载jar包
l____5.其它知识点
l________5.1 配置Maven远程仓库
l________5.2 如何发布淘东项目的微服务接口
l____总结
1. 常用的两种Maven仓库
我们知道,一个项目如果需要依赖其他第三方的工程,比如要依赖fastjson,则需要在maven配置文件里面配置相关的依赖,但是这种依赖是直接从远程中心仓库里依赖过来的。其实依赖相关的工程可以分为“远程依赖”和“本地私服依赖”的。
无私服 | 有私服 |
---|---|
![]() | ![]() |
下面来讲解在有私服的情况下,如何实现jar包的上传与下载?
2. 配置Maven仓库
2.1 新增Maven仓库
下面讲解创建私服仓库的步骤:
step1.创建仓库,点击Create repository
:
step2.然后选择maven2(hosted)然后输入仓库名称(mvn-test-release
):
step3.在version policy
中选择这个仓库的类型,这里选择release
:
step4.在Deployment policy
中选择Allow redeploy
(这个很重要):
step5. 点击创建仓库,自动刷新界面后,可以在界面看到,创建仓库成功:
2.2 创建用户
step1.点击左侧菜单栏的Users
菜单,然后点击Create local user
:
step2.创建了一个用户,账号密码都是「ylw
」:
step3.状态选择激活,并赋予所有权限:
step4.点击Create local user
,自动刷新页面后,可以看到产生了新的用户ylw
:
2.3 配置本地maven仓库
前面对于maven私服仓库配置都完成好了,下面还需要配置本地PC的Maven安装包的解压路径下的settings.xml
文件,新增本地私服的用户名和密码:
<servers>
<server>
<id>ylw</id>
<username>ylw</username>
<password>ylw</password>
</server>
</servers>
3. 上传jar包到Maven私服仓库
3.1 新建Maven工程
step1. 新建maven-up-project
工程,及新建User类,如下:
step2. 获取远程仓库的地址,具体步骤如下(其实也可以直接在本地Maven的settings.xml文件配置):
step3. 步骤二获取URL后,配置maven信息(注意下面的版本号不可以SNAPSHOT结尾 ,否则deploy会失败):
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.ylw</groupId>
<artifactId>maven-up-project</artifactId>
<version>v1.0</version>
<!--注意限定版本一定为RELEASE,因为上传的对应仓库的存储类型为RELEASE -->
<!--指定仓库地址 -->
<distributionManagement>
<repository>
<!--此名称要和.m2/settings.xml中设置的ID一致 -->
<id>ylw</id>
<url>http://192.168.162.134:8081/repository/mvn-test-release/</url>
</repository>
</distributionManagement>
<build>
<plugins>
<!--发布代码Jar插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.7</version>
</plugin>
<!--发布源码插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
3.2 上传jar包
上传jar包可以使用命令mvn deploy
或者直接在IDEA可视化窗口里直接发布,如下:
在控制台,可以看到上传到maven私服成功:
点击“Search” ->“Maven”,可以看到maven工程上传成功:
里面的内容如下:
关于上面的md5和sha1:
用比较文件hash值的方法可以知道文件是否改变,文件hash又叫文件签名,文件中哪怕一个bit位被改变了,文件hash就会不同。比较常用的文件hash算法有MD5和SHA-1。
4.从Maven私服仓库下载jar包
4.1 新建Maven工程
step1. 新建maven-down-project
工程
step2. 配置maven信息:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>maven-down-project</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.ylw</groupId>
<artifactId>maven-up-project</artifactId>
<version>v1.0</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>ylw</id>
<url>http://192.168.162.134:8081/repository/mvn-test-release/</url>
</repository>
</repositories>
</project>
4.2 下载jar包
配置好maven文件,可以看到jar包自动下载了,如下:
5.其它知识点
5.1 配置Maven远程仓库
其实还可以配置Maven私服的远程仓库的,具体如下:
step1.点击maven-central
如下:
step2.进入中心仓库后,可以配置远程仓库地址(Remote storage
),这里可以配置阿里云的地址,可以加速包的下载:
5.2 如何发布淘东项目的微服务接口
注意点:
- 依赖的父工程版本号不可以SNAPSHOT结尾。
- 如果发布的工程里面依赖了其它的工程,那么被依赖的工程必须先在Maven私服里面发布。
- 为了方便,项目里Maven配置私服的url地址可以在Maven安装目录下的setttings.xml里配置。