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

Posted IT老刘

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《果然新鲜》电商项目(12)- Maven私服仓库使用相关的知识,希望对你有一定的参考价值。

1. 常用的两种Maven仓库

我们知道,一个项目如果需要依赖其他第三方的工程,比如要依赖fastjson,则需要在maven配置文件里面配置相关的依赖,但是这种依赖是直接从远程中心仓库里依赖过来的。其实依赖相关的工程可以分为“远程依赖”和“本地私服依赖

下面来讲解在有私服的情况下,如何实现jar包的上传与下载?

2. 配置Maven仓库

2.1.创建私服仓库

下面讲解创建私服仓库的步骤:
step1.创建仓库,点击Create repository:

step2.然后选择maven2(hosted)然后输入仓库名称(test-release):

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

version policy中选择这个仓库的类型,这里选择release,在Deployment policy中选择Allow redeploy(这个很重要).


step5. 点击创建仓库,自动刷新界面后,可以在界面看到,创建仓库成功:

2.创建私账号

step1.点击左侧菜单栏的Users菜单,然后点击Create local user:
我这里创建了一个用户,账号密码都是:bruce

step2.创建了一个用户,账号密码都是「bruce」:

step3.状态选择激活,并赋予所有权限:

step4.点击Create local user,自动刷新页面后,可以看到产生了新的用户bruce:

3.配置本地maven仓库

前面对于maven私服仓库配置都完成好了,下面还需要配置本地PC的Maven安装包的解压路径下的settings.xml文件,新增本地私服的用户名和密码:

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

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

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

step1. 获取远程仓库的地址,具体步骤如下(其实也可以直接在本地Maven的settings.xml文件配置):

step2. 获取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.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可视化窗口里直接发布,如下

在控制台,可以看到上传到maven私服成功:

点击“Search” ->“Maven”,可以看到maven工程上传成功:

里面的内容如下:

关于上面的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>


本地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如下:

step2.进入中心仓库后,可以配置远程仓库地址(Remote storage),这里可以配置阿里云的地址,可以加速包的下载:

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

注意点:

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

7. 总结

以上是关于《果然新鲜》电商项目(12)- Maven私服仓库使用的主要内容,如果未能解决你的问题,请参考以下文章

《果然新鲜》电商项目(27)- 门户界面

《果然新鲜》电商项目(23)- 全局异常捕获

《果然新鲜》电商项目(22)- DTO接口细分

《果然新鲜》电商项目(24)- 日志打印

《果然新鲜》电商项目(29)- 门户注册功能

《果然新鲜》电商项目(25)- 会员唯一登录