• maven私服搭建nexus介绍(二)


    1.各个仓库介绍

    Hosted:宿主仓库

           主要放本公司开发的SNAPSHOTS测试版本,RELEASES正式发行版。合作公司第三方的jar包。

    Proxy:代理仓库

           代理中央仓库;代理Apache下测试版本jar包

    Group:组仓库

         存放各种仓库(宿主仓库,代理仓库)

    Virtual:虚拟仓库(废弃)

           代理maven1版本的jar包

    2.组仓库可进行配置,存放那个仓库(配置后 通过组仓库即可访问配置过的仓库)

    3.maven中私服的配置

    jar包上传配置

    setting.xml中的配置

    <server>
        <!-- 发布的位置在POM中配置,以ID为关联,有很多公用的信息需要配置在POM文件里,最佳实践是定义一个公司级别的root pom -->
        <id>releases</id>
        <username>admin</username>
        <password>admin123</password>
    </server>
    <server>
        <id>snapshots</id>
        <username>admin</username>
        <password>admin123</password>
    </server>
    
    项目pom.xml配置
    
    <!-- 分配 -->
    <distributionManagement>
        <repository>
            <id>releases</id>
            <url>http://localhost:8081/nexus/content/repositories/releases/</url>
        </repository>
        <snapshotRepository>
            <id>snapshots</id>
            <url>http://localhost:8081/nexus/content/repositories/snapshots/</url>
        </snapshotRepository>
    </distributionManagement>

    4.jar包下载配置

    setting.xml配置

    <!-- 自定义本地仓库地址,其默认值为~/.m2/repository   
    <localRepository>/data/maven-repository</localRepository>  
    -->  
      <!-- 发布的服务器和密码,暂时未限制权限 -->  
       <servers>  
        <server>  
          <!-- 发布的位置在POM中配置,以ID为关联,有很多公用的信息需要配置在POM文件里,最佳实践是定义一个公司级别的root pom -->  
          <id>nexus</id>  
          <username>admin</username>  
          <password>admin123</password>  
        </server>  
        <server>  
          <id>nexus-snapshots</id>  
          <username>admin</username>  
          <password>admin123</password>  
        </server>  
        <server>  
          <id>thirdparty</id>  
          <username>admin</username>  
          <password>admin123</password>  
        </server>  
      </servers> 
     <!-- 配置镜像 -->  
      <mirrors>     
        <mirror>  
          <!-- 此镜像一般用来作为公司内部开发的版本快照,作为public-snapshots仓库的镜像地址 -->  
          <!-- 镜像的id,id用来区分不同的mirror元素。 -->   
          <id>nexus-public-snapshots</id>  
          <!-- 被镜像的服务器的id。例如,如果我们要设置了一个Maven中央仓库(http://repo1.maven.org/maven2)的镜像,  
            就需要将该元素设置成central。这必须和中央仓库的id “central”完全一致。 -->  
          <mirrorOf>public-snapshots</mirrorOf>  
          <!-- 该镜像的URL。 -->   
          <url>http://192.168.10.92:8081/nexus/content/groups/public-snapshots</url>  
        </mirror>  
          
        <mirror>  
          <!-- 此镜像一般用来作为公司第三方引用基础类库镜像,是所有仓库的镜像地址 -->  
          <id>nexus</id>  
          <!-- 为*表示为所有的仓库做镜像,有了这个配置,所有的构建都会包含public组,如果你想包含public-snapshots组,  
            你必须添加public-snapshots这个Profile,通过在命令行使用如下的 -P 标志:$ mvn -P public-snapshots clean install -->  
          <mirrorOf>*</mirrorOf>  
          <url>http://192.168.10.92:8081/nexus/content/groups/public</url>  
        </mirror>   
      </mirrors>  
        
      <!-- settings.xml中的profile元素是pom.xml中profile元素的裁剪版本。它包含了activation, repositories, pluginRepositories 和 properties元素。  
        这里的profile元素只包含这四个子元素是因为这里只关心构建系统这个整体(这正是settings.xml文件的角色定位),而非单独的项目对象模型设置。    
        如果一个settings中的profile被激活,它的值会覆盖任何其它定义在POM中或者profile.xml中的带有相同id的profile。 -->   
      <profiles>  
        <profile>  
          <id>development</id>  
          <!-- 仓库。仓库是Maven用来填充构建系统本地仓库所使用的一组远程项目。而Maven是从本地仓库中使用其插件和依赖。  
            不同的远程仓库可能含有不同的项目,而在某个激活的profile下,可能定义了一些仓库来搜索需要的发布版或快照版构件。有了Nexus,这些应该交由Nexus完成 -->  
          <repositories>  
            <repository>  
              <id>central</id>  
              <!-- 虚拟的URL形式,指向镜像的URL,因为所有的镜像都是用的是nexus,这里的central实际上指向的是http://repos.d.xxx.com/nexus/content/groups/public -->  
              <url>http://central</url>  
              <!-- 表示可以从这个仓库下载releases版本的构件-->  
              <releases><enabled>true</enabled></releases>  
              <!-- 表示可以从这个仓库下载snapshot版本的构件 -->  
              <snapshots><enabled>true</enabled></snapshots>  
            </repository>  
          </repositories>  
           
         <!-- 插件仓库。仓库是两种主要构件的家。第一种构件被用作其它构件的依赖。这是中央仓库中存储大部分构件类型。  
            另外一种构件类型是插件。Maven插件是一种特殊类型的构件。由于这个原因,插件仓库独立于其它仓库。  
            pluginRepositories元素的结构和repositories元素的结构类似。每个pluginRepository元素指定一个Maven可以用来寻找新插件的远程地址。 -->    
         <pluginRepositories>  
            <pluginRepository>  
              <id>central</id>  
              <url>http://central</url>  
              <releases><enabled>true</enabled></releases>  
              <snapshots><enabled>true</enabled></snapshots>  
            </pluginRepository>  
          </pluginRepositories>  
        </profile>  
          
        <profile>  
          <!--this profile will allow snapshots to be searched when activated-->  
          <id>public-snapshots</id>  
          <repositories>  
            <repository>  
              <id>public-snapshots</id>  
              <!-- 虚拟的URL形式,指向镜像的URL,这里指向的是http://repos.d.xxx.com/nexus/content/groups/public-snapshots -->  
              <url>http://public-snapshots</url>  
              <releases><enabled>false</enabled></releases>  
              <snapshots><enabled>true</enabled></snapshots>  
            </repository>  
          </repositories>  
         <pluginRepositories>  
            <pluginRepository>  
              <id>public-snapshots</id>  
              <url>http://public-snapshots</url>  
              <releases><enabled>false</enabled></releases>  
              <snapshots><enabled>true</enabled></snapshots>  
            </pluginRepository>  
          </pluginRepositories>  
        </profile>  
      </profiles>  
        
      <!-- 激活的Profile。activation元素并不是激活profile的唯一方式。settings.xml文件中的activeProfile元素可以包含profile的id,  
        任何在activeProfile中定义的profile id,不论环境设置如何,其对应的profile都会被激活。如果没有匹配的profile,则什么都不会发生。  
        profile也可以通过在命令行,使用-P标记和逗号分隔的列表来显式的激活(如,-P test)。  
        要了解在某个特定的构建中哪些profile会激活,可以使用maven-help-plugin(mvn help:active-profiles)。 -->    
      <activeProfiles>  
        <!-- 没有显示激活public-snapshots -->  
        <activeProfile>development</activeProfile>  
      </activeProfiles>
  • 相关阅读:
    getline在windows系统下的怪现象
    android camera根据屏幕图像大小设置显示
    android camera以时间来命名照片文件
    android 基本的画图方法
    android 开发使用剪切板传递数据
    用keytool生成一个自签名证书,并导出到文件
    VBA,两个sheet根据第一列id相同比较其余列,不同的值放到sheet3中
    摄像头视频采集压缩及传输
    Extjs 3根据数据库动态生成checkboxgroup(extjs系列1)
    Extjs 3,jstl根据数据库数据自动构建FormPanel(Extjs系列2)
  • 原文地址:https://www.cnblogs.com/free-ys/p/6629388.html
Copyright © 2020-2023  润新知