文章目录

1. 常用的两种Maven仓库

我们知道,一个项目如果需要依赖其他第三方的工程,比如要依赖fastjson,则需要在maven配置文件里面配置相关的依赖,但是这种依赖是直接从远程中心仓库里依赖过来的。其实依赖相关的工程可以分为“远程依赖”和“本地私服依赖
《果然新鲜》电商项目(12)- Maven私服仓库使用_上传
下面来讲解在有私服的情况下,如何实现jar包的上传与下载?

2. 配置Maven仓库

2.1.创建私服仓库

下面讲解创建私服仓库的步骤:
step1.创建仓库,点击​​Create repository​​​:
《果然新鲜》电商项目(12)- Maven私服仓库使用_maven_02

step2.然后选择maven2(hosted)然后输入仓库名称(​​test-release​​​):
《果然新鲜》电商项目(12)- Maven私服仓库使用_maven_03

step3.在version policy中选择这个仓库的类型,这里选择​​release​​:

在​​version policy​​​中选择这个仓库的类型,这里选择​​release​​​,在​​Deployment policy​​​中选择​​Allow redeploy​​​(这个很重要).
《果然新鲜》电商项目(12)- Maven私服仓库使用_上传_04
《果然新鲜》电商项目(12)- Maven私服仓库使用_maven_05
step5. 点击创建仓库,自动刷新界面后,可以在界面看到,创建仓库成功:

《果然新鲜》电商项目(12)- Maven私服仓库使用_maven_06

2.创建私账号

step1.点击左侧菜单栏的​​Users​​​菜单,然后点击​​Create local user​​​:
我这里创建了一个用户,账号密码都是:bruce
《果然新鲜》电商项目(12)- Maven私服仓库使用_上传_07
step2.创建了一个用户,账号密码都是「bruce」:
《果然新鲜》电商项目(12)- Maven私服仓库使用_jar_08
step3.状态选择激活,并赋予所有权限:
《果然新鲜》电商项目(12)- Maven私服仓库使用_maven_09
step4.点击​​Create local user​​​,自动刷新页面后,可以看到产生了新的用户bruce:
《果然新鲜》电商项目(12)- Maven私服仓库使用_java_10

3.配置本地maven仓库

前面对于maven私服仓库配置都完成好了,下面还需要配置本地PC的Maven安装包的解压路径下的settings.xml文件,新增本地私服的用户名和密码:
《果然新鲜》电商项目(12)- Maven私服仓库使用_java_11

<servers>
<server>
<id>test-release</id>
<username>bruce-release</username>
<password>release</password>
</server>
</servers>

4.创建一个Maven工程上传依赖到私服

创建一个maven工程,并且打包到maven私服。

step1. 获取远程仓库的地址,具体步骤如下(其实也可以直接在本地Maven的settings.xml文件配置):
《果然新鲜》电商项目(12)- Maven私服仓库使用_maven_12
step2. 获取URL后,配置maven信息(注意下面的版本号不可以SNAPSHOT结尾 ,否则deploy会失败):

相关配置

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http:///POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http:///POM/4.0.0 http:///xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.bruce.maven.jar.test</groupId>
<artifactId>maven-jar-test</artifactId>
<version>1.0-RELEASE</version>

<!--注意限定版本一定为RELEASE,因为上传的对应仓库的存储类型为RELEASE -->
<!--指定仓库地址 -->
<distributionManagement>
<repository>
<!--此名称要和.m2/settings.xml中设置的ID一致 -->
<id>test-release</id>
<url>http://192.168.10.130:8081/repository/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>

mvn deploy
上传jar包可以使用命令​​​mvn deploy​​​或者直接在IDEA可视化窗口里直接发布,如下
《果然新鲜》电商项目(12)- Maven私服仓库使用_上传_13
在控制台,可以看到上传到maven私服成功:
《果然新鲜》电商项目(12)- Maven私服仓库使用_java_14
点击“Search” ->“Maven”,可以看到maven工程上传成功:
《果然新鲜》电商项目(12)- Maven私服仓库使用_java_15
里面的内容如下:
《果然新鲜》电商项目(12)- Maven私服仓库使用_java_16
关于上面的md5和sha1:

用比较文件hash值的方法可以知道文件是否改变,文件hash又叫文件签名,文件中哪怕一个bit位被改变了,文件hash就会不同。比较常用的文件hash算法有MD5和SHA-1。

5.测试私服拉取依赖

新建一个maven工程,指定私服地址

<repositories>
<repository>
<id>test-release</id>
<url>http://192.168.10.130:8081/repository/test-release/</url>
</repository>
</repositories>

依赖私服中的JAR

<dependency>
<groupId>com.bruce.maven.jar.test</groupId>
<artifactId>maven-jar-test</artifactId>
<version>1.0-RELEASE</version>
</dependency>

《果然新鲜》电商项目(12)- Maven私服仓库使用_上传_17
本地setting指向maven私服地址

<mirror>  
<id>central</id>
<name>internal nexus repository</name>
<url>http://192.168.10.130:8081/repository/maven-central/</url>
<mirrorOf>*</mirrorOf>
</mirror>

6.其它知识点

6.1.配置Maven远程仓库

其实还可以配置Maven私服的远程仓库的,具体如下:

step1.点击maven-central如下:
《果然新鲜》电商项目(12)- Maven私服仓库使用_maven_18
step2.进入中心仓库后,可以配置远程仓库地址(Remote storage),这里可以配置阿里云的地址,可以加速包的下载:
《果然新鲜》电商项目(12)- Maven私服仓库使用_maven_19

6.2.如何发布果然新鲜项目的微服务接口

注意点:

  1. 依赖的父工程版本号不可以SNAPSHOT结尾。
  2. 如果发布的工程里面依赖了其它的工程,那么被依赖的工程必须先在Maven私服里面发布。
  3. 为了方便,项目里Maven配置私服的url地址可以在Maven安装目录下的setttings.xml里配置。

7. 总结

《果然新鲜》电商项目(12)- Maven私服仓库使用_maven_20