zoukankan      html  css  js  c++  java
  • 【Maven】---Nexus私服配置Setting和Pom

    上一遍博客已经在linux服务器上,搭建好nexus私服了,博客地址:Linux搭建Nexus3.X私服

    现在就需要配置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 (完整版)

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

    <?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>

    并没有报错,表拉取成功

    (3)写测试类

    引用成功

    (4)看后台输出

    输出成功

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

    参考

    1、maven发布jar包到nexus
    2、让Maven项目使用Nexus作为远程仓库的settings.xml配置
    3、Maven 全局配置文件settings.xml详解

  • 相关阅读:
    C# winform 获取标题栏,状态栏,菜单栏的高度
    <转载>OleDb操作Access数据库:新增记录时获取自动编号的主键值
    《名利场》:微软 “ 失落的十年”
    Lisp的永恒之道(转)
    Google Earth KML数据格式转换成Shp数据格式(转)
    【转】ArcGIS投影转换与坐标转换
    利用Mono.Cecil动态修改程序集来破解商业组件(仅用于研究学习)
    C# mouseDoubleClick与DoubleClick的关系
    ACCESS通用操作数据类
    VS2010单元测试入门实践教程
  • 原文地址:https://www.cnblogs.com/zouhong/p/13155306.html
Copyright © 2011-2022 走看看