CentOS安装nexus搭建maven私服(二)

架设maven私服的一个重要目的,就是在团队协作开发的时候,底层开发人员可以将模块部署到服务器,上层的开发人员可以直接使用依赖,而且迭代升级也很方便,否则就需要把.m2中的库一个个发送,这事儿笔者做过,虽然模块不多,可是感觉到这明显不是处理事情的办法。

好了,因为我们的nexus已经搭建完毕,我们要给nexus创建一个新的用户,并且添加nx-admin权限。笔者建议,最好添加一个,虽然默认的admin用户拥有所有权限,什么都能调试,但是这是唯一一个超级用户,一旦权限降低就没有人管得了系统了。笔者就做过,到centos服务器里面找了个遍,也没找到用户信息和权限设置在哪儿,不得已重新架设了一遍。

CentOS安装nexus搭建maven私服(二)_第1张图片

接下来我们修改maven的settings.xml 文件。

在这里插几句,由于maven默认将.m2库放在了系统盘,我特意做了规划,把开发用到的库放到另外的分区里面。我想当然地以为,在Idea里面把地址改动就好了。结果跟预想的不一样,混乱了好一阵。大致把思路理一下。

.m2库的位置是由maven的settings.xml文件决定的,找到你所使用(意思是假如你安装了多个maven的版本)的maven文件夹下面的conf文件夹,打开settings.xml文件,在开头部分就是修改库位置,照这个样子修改为新的位置。


  F:\libraries\maven\.m2\repository

保存以后,可以测试一下。吗用户文件夹下面的.m2删除掉,新建或者在一个现成的项目里面,添加一个新的maven依赖库,刷新导入,看看再用户文件夹下面会不会自动建立.m2文件夹,如果没有,那就是改好了。

然后在做其他修改,修改还是在maven安装文件夹下面的conf/settings.xml文件,别以为在Idea里面改动设置的Override会起作用,只要maven安装文件夹conf下面有settings.xml,它就会首先被使用。因为我改动了.m2的位置,必须要有这里这个文件。当然,如果你没有改动默认.m2的位置,然后可以把maven安装文件夹下面的conf/settings.xml文件删除掉,maven找不到,就会使用你在Idea里面设置的那一个了。

现在我们在settings.xml中一些节点里面添加一些东西。

1. 首先在节点添加如下信息。

    
      nexus-public
      chris
      123456
    
    
      nexus-releases
      chris
      123456
    
    
      nexus-snapshots
      chris
      123456
    

这三个节点信息对应maven在访问这三个库public组,replease和snapshots时的权限验证。

2. 在节点下面添加以下信息。

    
      nexus-public
      Chris Home Nexus public Server
      http://192.168.1.100:8081/repository/maven-public/
      *
    
    
      nexus-releases
      Chris Home Nexus releases Server
      http://192.168.1.100:8081/repository/maven-releases/
      *
    
    
      nexus-snapshots
      Chris Home Nexus snapshots Server
      http://192.168.1.100:8081/repository/maven-snapshots/
      *
    

对应的是三个库的url。注意那个中间是个大写O,有份教程写成了小写,不能被识别。

CentOS安装nexus搭建maven私服(二)_第2张图片

关于settings.xml文件的设置基本就结束了,接下来是在maven项目中对pom的配置,如果你只是使用中央仓库的依赖,你什么都不用配置,就当什么都没发生过,你添加的外部依赖,都会首先去私服寻找,如果没有,就会下载一份搭配私服,再从私服下载到本地.m2仓库。如果你需要把你的项目打包上传给其他开发人员依赖,你就需要对pom做一点设置。

3. 设置pom文件。也就是加入一个配置节点。


    
        
        
        
            nexus-releases
            http://192.168.1.100:8081/repository/maven-releases/
        
        
            nexus-snapshots
            http://192.168.1.100:8081/repository/maven-snapshots/
        
    

4. 你在项目中创建一个工具类,可以调用的,以便测试。

package com.chris.utils.demo;

public class DemoUtils {
    public static String getInfo() {
        return "This is my utils.";
    }
}

项目的maven信息是这样:

com.chris
nexus-utils-demo
1.0.1
jar

这是将来在其他项目中以来的库信息,部署完成后,把下面这个信息发送给其他开发人员,他们就可以下载依赖了。


    com.chris
    nexus-utils-demo
    1.0.1

5. 在执行部署之前,我们要确保仓库允许部署。

CentOS安装nexus搭建maven私服(二)_第3张图片

把release和snapshots都设置为Allow redeploy。因为我们部署的项目只涉及这两个库。

执行部署命令:

mvn deploy -e

-e:打印异常信息

执行过程中,会下载很多库,你回过头去central仓库看看,出现了很多的依赖库:

CentOS安装nexus搭建maven私服(二)_第4张图片

你如果把你先前开发的项目都Import Changes,这个仓库会很丰富。

命令执行完毕,如果没有错误信息,去看看release仓库,你的支持库就躺在那里。

CentOS安装nexus搭建maven私服(二)_第5张图片

好了,在另外一个maven项目中添加依赖


     com.chris
     nexus-utils-demo
     1.0.1

依赖下载完成之后,在测试类中调用。

package com.chris.tech;

import com.chris.utils.demo.DemoUtils;

public class MainTest {
    public static void main(String[] args) {
        test();
    }

    private static void test() {
        System.out.println(DemoUtils.getInfo());
    }

}

运行结果:

CentOS安装nexus搭建maven私服(二)_第6张图片

 

你可能感兴趣的:(Java,maven)