• Maven私服配置Setting和Pom文件


    原文出处http://www.yund.tech/zdetail.html?type=1&id=3688b5fa1f7d7df8b183ad8c9503546d    

    作者:jstarseven


    上一遍博客已经在linux服务器上,搭建好nexus私服了

    现在就需要配置setting.xmlpom.xml来使nexus作为maven的私服。setting.xml文件在conf下面,pom.xml是在你创建maven项目中的pom.xml中。

    一、将jar发送到nexus私服务器

    1、创建maven项目

    创建一个最简单的maven项目,然后新建一个工具类,用来测试当把它打成jar包放到私服后,其它项目是否能够成功引用。

    2、pom.xml

    <?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.jincou</groupId>
        <artifactId>xuxiaoxiao</artifactId>
        <!--SNAPSHOT代表是快照版本-->
        <version>1.0.0-SNAPSHOT</version>
        <packaging>jar</packaging>
    
        <name>xuxiaoxiao</name>
        <description>Demo project</description>
    
        <distributionManagement>
            <repository>
                <!--id的名字可以任意取,但是在setting文件中的属性<server>的ID与这里一致-->
                <id>releases</id>
                <!--指向仓库类型为host(宿主仓库)的储存类型为Release的仓库-->
                <url>http://47.96.4.110:8081/repository/java-release/</url>
            </repository>
            <snapshotRepository>
                <id>snapshots</id>
                <!--指向仓库类型为host(宿主仓库)的储存类型为Snapshot的仓库-->
                <url>http://47.96.4.110:8081/repository/java-snapshot/</url>
            </snapshotRepository>
        </distributionManagement>
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
            <java.version>1.8</java.version>
        </properties>
        
    </project>
    

      

    3、setting.xml配置

    在这里只要配置登陆nexus的用户名密码,不然没有用户名和密码怎么能将jar包发送到私服呢。

    <!--此处设置的用户名和密码都是nexus的登陆配置-->
     <servers>
         <server>
          <id>releases</id>  <!--对应pom.xml的id=releases的仓库-->
          <username>xuxiaoxiao</username>
          <password>xuxiaoxiao123</password>
        </server>
         <server>
          <id>snapshots</id> <!--对应pom.xml中id=snapshots的仓库-->
          <username>xuxiaoxiao</username>
          <password>xuxiaoxiao123</password>
        </server>
      </servers>
    

      

    注意maven会判断版本后面是否带了-SNAPSHOT,如果带了就发布到snapshots仓库,否则发布到release仓库。这里我们可以在pom.xml文件中

    执行命令:mvn deploy

    发现部署到nexus私服成功,我们到私服查看下,因为这里的版本是带SNAPSHOT,所以会发布到snapshots仓库中。

    说明已经成功将jar包发布到nexus私服中了。那么下一步是如何引用私服中的jar包了。

    二、从nexus引用第三方jar包

    让maven项目使用nexus作为远程仓库有两种方式,第一种是在项目的pom.xml中进行更改,让单个项目使用nexus仓库;另一种是通过修改maven的配置文件settings.xml进行更改,让所有项目都使用nexus仓库。我们这里采取第二种,只需要setting.xml就可以了。还有就是拉取jar的私服仓库地址只要写一个java-group就可以了,因为在创建这个组的时候,里面已经包含了其它三个仓库。

    1、setting.xml (完整版)

    <?xml version="1.0" encoding="UTF-8"?>
    
    <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
        <pluginGroups>
      </pluginGroups>
      <proxies>
      </proxies>
    
     <servers>
        <!--第一个nexus-xu要和下面的mirror中的id一致,代表拉取是也需要进行身份校验-->
        <server>
          <id>nexus-xu</id>
          <username>xuxiaoxiao</username>
          <password>xuxiaoxiao113</password>
        </server>
         <server>
          <!--这两个前面讲过,是jar上传时候进行的验证,id对应的是pom中id属性的值-->
          <id>releases</id>
          <username>xuxiaoxiao</username>
          <password>xuxiaoxiao113</password>
        </server>
         <server>
          <id>snapshots</id>
          <username>xuxiaoxiao</username>
          <password>xuxiaoxiao113</password>
        </server>
      </servers>
    
      <mirrors>
        <mirror>
            <id>nexus-xu</id>
            <name>internal nexus repository</name>
            <!--镜像采用配置好的组的地址-->
            <url>http://47.96.44.110:8081/repository/java-group/</url>
            <mirrorOf>!internal.repo,*</mirrorOf>
        </mirror>
      </mirrors>
    
      <profiles>
    <profile>
      <!--ID用来确定该profile的唯一标识-->
               <id>jdk-1.8</id>
               <activation>
                   <activeByDefault>true</activeByDefault>
                   <jdk>1.8</jdk>
               </activation>
               <properties>
                   <maven.compiler.source>1.8</maven.compiler.source>
                   <maven.compiler.target>1.8</maven.compiler.target>
                   <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
               </properties>
       </profile>
    
        <profile>
      <id>nexus-pr</id>
       <!-- 远程仓库列表 -->
      <repositories>
        <repository>
          <id>nexus-xu</id>
          <name>Nexus Central</name>
         <!-- 虚拟的URL形式,指向镜像的URL-->
          <url>http://47.96.44.110:8081/repository/java-group/</url>
          <layout>default</layout>
         <!-- 表示可以从这个仓库下载releases版本的构件-->  
          <releases>
            <enabled>true</enabled>
          </releases>
         <!-- 表示可以从这个仓库下载snapshot版本的构件 -->  
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
        </repository>
      </repositories>
       <!-- 插件仓库列表 -->
      <pluginRepositories>
        <pluginRepository>
          <id>nexus-xu</id>
          <name>Nexus Central</name>
          <url>http://47.96.44.110:8081/repository/java-group/</url>
          <layout>default</layout>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
          <releases>
             <enabled>true</enabled>
          </releases>
        </pluginRepository>
      </pluginRepositories>
       </profile>
      </profiles>
    
      <activeProfiles>
         <!--需要激活 <profile>中的ID才生效-->  
        <activeProfile>nexus-pr</activeProfile>
        <activeProfile>jdk-1.8</activeProfile>
      </activeProfiles>
    </settings>
    

      

    2、验证

    (1)新建项目添加pom依赖

        <dependencies>
            <dependency>
                <groupId>com.jincou</groupId>
                <artifactId>xuxiaoxiao</artifactId>
                <version>1.0.0-SNAPSHOT</version>
            </dependency>
        </dependencies>
    

      

    (2)看是否拉取到私服的jar包

    并没有报错,表拉取成功

    (3)写测试类

    引用成功

    (4)看后台输出

    输出成功

    从这里将jar包发送到私服和从私服拉取jar就成功了。 


     -END-

     

  • 相关阅读:
    java面试②基础部分
    java面试①整体流程
    Mysql加锁过程详解(6)-数据库隔离级别(2)-通过例子理解事务的4种隔离级别
    Mysql加锁过程详解(6)-数据库隔离级别(1)
    CV3——学习笔记-实战项目(上):如何搭建和训练一个深度学习网络
    CV2——学习笔记-图像分类
    CV1——学习笔记
    思无邪
    C++学习笔记
    操作系统——学习笔记
  • 原文地址:https://www.cnblogs.com/jstarseven/p/11276073.html
Copyright © 2020-2023  润新知