zoukankan      html  css  js  c++  java
  • 03.maven连接nexus私服配置以及maven settings.xml文件详解

    settings.xml有什么用?

    如果在Eclipse中使用过Maven插件,想必会有这个经验:配置settings.xml文件的路径。

    settings.xml文件是干什么的,为什么要配置它呢?

    从settings.xml的文件名就可以看出,它是用来设置maven参数的配置文件。并且,settings.xml是maven的全局配置文件。而pom.xml文件是所在项目的局部配置。

    Settings.xml中包含类似本地仓储位置、修改远程仓储服务器、认证信息等配置。

    settings.xml文件位置

    settings.xml文件一般存在于两个位置:

    全局配置: ${M2_HOME}/conf/settings.xml

    用户配置: {user.home} 和和所有其他系统属性只能在3.0+版本上使用。请注意windows和Linux使用变量的区别。

    配置优先级

    需要注意的是:局部配置优先于全局配置。

    配置优先级从高到低:pom.xml> user settings > global settings

    如果这些文件同时存在,在应用配置时,会合并它们的内容,如果有重复的配置,优先级高的配置会覆盖优先级低的。

    maven怎么从远程仓库下载jar包,setting中配置:

         <!--  我们使用maven下载需要的jar包,但是很多的时候由于中央仓库没有,所以此处可以在maven的设置中心添加多个下载仓库,当中央仓库没有的话,继续到下一个仓库去下载。这样丰富了中央仓库的下载地址。  -->

         <mirror>

          <id>nexus</id>

          <name>nexus maven</name>

          <url>http://localhost:8081/repository/maven-public/</url>

          <mirrorOf>*</mirrorOf>        

         </mirror> 

         <mirror>

          <id>alimaven</id>

          <name>aliyun maven</name>

          <url>http://maven.aliyun.com/nexus/content/groups/public/</url>

          <mirrorOf>central</mirrorOf>        

         </mirror> 

         <mirror>  

          <id>repo2</id>  

          <mirrorOf>central</mirrorOf>  

          <name>Human Readable Name for this Mirror.</name>  

          <url>http://repo2.maven.org/maven2/</url>  

        </mirror>

      </mirrors>

    Nexus配置
    项目使用nexus私服的jar包,在项目的pom.xml文件中指定私服仓库

    <repositories>

          <repository>

              <id>nexus</id>

              <name>nexus</name>

              <url>http://192.168.1.103:8081/nexus/content/groups/public/</url>

              <releases>

                  <enabled>true</enabled>

              </releases>

              <snapshots>

                 <enabled>true</enabled>

             </snapshots>

         </repository>

     </repositories>

    项目使用nexus私服的插件,在项目的pom.xml文件中指定插件仓库

     <pluginRepositories>

          <pluginRepository>

              <id>nexus</id>

              <name>nexus</name>

              <url>http://192.168.1.103:8081/nexus/content/groups/public/</url>

              <releases>

                  <enabled>true</enabled>

              </releases>

              <snapshots>

                 <enabled>true</enabled>

             </snapshots>

         </pluginRepository>

     </pluginRepositories>

    如果想本机所有的maven项目都使用私服的组件,可以在maven的设置文件settings.xml中添加属性,并激活

      <profile>

           <id>Nexus</id>

           <repositories>

             <repository>

              <id>nexus</id>

              <url>http://localhost:8081/repository/maven-public/</url>

              <releases><enabled>true</enabled></releases>

              <snapshots><enabled>true</enabled></snapshots>

             </repository>

           </repositories>

           <pluginRepositories>

             <pluginRepository>

               <id>nexus</id>

               <url>http://localhost:8081/repository/maven-public/</url>

               <releases>

                <enabled>true</enabled>

               </releases>

              <snapshots>

                <enabled>true</enabled>

              </snapshots>

             </pluginRepository>

            </pluginRepositories>

         </profile>

      </profiles>

      <!-- 激活 -->

      <activeProfiles>

        <activeProfile>Nexus</activeProfile>

      </activeProfiles>

    如何将自己的项目发布到nexus私服

     

    我们知道用mvn install命令可以将项目装载的本地的仓库,但是项目发布到私服,maven项目就要使用命令:mvn clean deploy;

    要想发布项目到nexus里,必须通过标签来进行配置。在之前的文章中有介绍nexus的工厂类别,其中提到两个:hosted里的Releases、Snapshots.

     

    当我们发布项目到nexus里时,如果项目版本是x.x.x-Releases,则会发布到Releases工厂中;而项目版本是x.x.x-SNAPSHOTS则发布到Snapshots工厂中。

    需要在pom文件中配置一下代码;

    <distributionManagement>

            <repository>

                <id>nexus-releases</id>

                <name>Nexus Release Repository</name>

                <url>http://localhost:8081/repository/maven-releases/</url>

            </repository>

            <snapshotRepository>

                <id>nexus-snapshots</id>

                <name>Nexus Snapshot Repository</name>

                <url>http://localhost:8081/repository/maven-snapshots//</url>

            </snapshotRepository>

        </distributionManagement>

    注意还需要配置mvn发布的权限,否则会报401错误,在settings.xml中配置权限,其中id要与pom文件中的id一致

      <!--授权信息  -->

          <server> 

            <id>nexus-releases</id> 

            <username>admin</username> 

            <password>admin123</password> 

          </server> 

          <server> 

            <id>nexus-snapshots</id> 

            <username>admin</username> 

            <password>admin123</password> 

          </server>

    这里面的username和password对应的是nexus私服中具有发布权限的用户名和密码

    原文地址:https://blog.csdn.net/u011217058/article/details/79418317

    http://blog.csdn.net/u012225679/article/details/73740785

    https://www.cnblogs.com/jingmoxukong/p/6050172.html?utm_source=gold_browser_extension

    http://blog.csdn.net/moshenglv/article/details/52027125

    http://blog.csdn.net/haohaizijhz/article/details/72841489

    https://www.cnblogs.com/h–d/p/5719040.html

    http://blog.csdn.net/cwh056056/article/details/49667971

    下载

    https://blog.csdn.net/weixin_43943548/article/details/107035485

    使用

    https://www.cnblogs.com/fly-book/p/15141282.html

    https://www.cnblogs.com/fanjingfeng/p/14411817.html

    https://blog.csdn.net/g631521612/article/details/107156944/?utm_term=mavenwindows%E7%A7%81%E6%9C%89%E4%BB%93%E5%BA%93&utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~sobaiduweb~default-1-107156944&spm=3001.4430

    导入

    https://www.cnblogs.com/anlalala/p/15608073.html

     

  • 相关阅读:
    STL_string容器
    STL简介
    C++文件输入输出
    Qfile22
    QFile111
    v-model原理
    Scrum敏捷软件开发方法
    大神讲故事:微服务及相关技术,很生动,另附ws和restful区别
    js异步请求方法
    SQL Server中char、varchar、text和nchar、nvarchar、ntext的区别 (转)
  • 原文地址:https://www.cnblogs.com/lqmblog/p/15655241.html
Copyright © 2011-2022 走看看