• 【Maven】---Nexus私服配置Setting和Pom


    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 (完整版)

    <?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就成功了。

    参考

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

    如果一个人充满快乐,正面的思想,那么好的人事物就会和他共鸣,而且被他吸引过来。同样,一个人老带悲伤,倒霉的事情也会跟过来。
    
                                                      ——在自己心情低落的时候,告诫自己不要把负能量带给别人。(大校2)
    
    
  • 相关阅读:
    Styles和Themes
    Activity返回值
    Android BaseAdapter 例子
    Android流量统计TrafficStats类的使用
    Javascript屏蔽IE和Firefox浏览器默认按键响应(快捷键功能)
    拍照技巧笔记
    android开发录音和播放录音的例子
    Eclipse快捷键大全(android开发)
    Android SQLite 添加、更新和删除行
    绑定Enum到ASP.NET数据绑定控件的完美解决方案[05/26修订]——增加支持第三方枚举描述,支持二进制与过的枚举值
  • 原文地址:https://www.cnblogs.com/qdhxhz/p/9808642.html
Copyright © 2020-2023  润新知