Maven之——Nexus仓库与构件

Maven之——Nexus仓库与构件   

       

1、    Nexus的索引与构件搜索


        用户可以根据构件名称、GVA来在Nexus中搜索所需构件、但是前提是被搜索的仓库开启索引。比如中央仓库、默认中央仓库是关闭自动下载远程索引的、如下图、开启下载中央仓库远程索引:

          

 

        可以在ScheduledTasks中观察系统的调度任务、也可以在这里配置系统的调度任务。


           

2、    配置Maven从Nexus下载构件


        Maven私服搭建好之后、需要修改配置文件、使用Nexus私服。具体目标是、所有构件和插件的请求都转向Nexus私服。

        大致步骤:1、配置Nexus做为我们仓库。2、将Nexus做为所有仓库的镜像。


3、     配置Nexus做为我们仓库

        如果在某一具体项目的POM中配置、那只对当前项目有效、若想一次配置所有项目都使用、那么就是在settings.xml文件中配置、但是settings.xml中没有关于Repositeries配置、但是可以在<profiles><profile>标签中配置、然后激活<profile>配置文件、通过id关联、具体见下方详细配置信息:

<profiles>
     ...
     <profile>
      <id>nexus</id>
      <repositories>
        <repository>
            <id>nexus</id>
            <name>Nexus Repository</name>
            <url>http://localhost:8081/nexus/content/groups/public/</url>
            <layout>default</layout>
            <!--<snapshots>-->
            <!--<enabled>false</enabled>-->
            <!--</snapshots>-->
            <snapshots>
                <enabled>true</enabled>
                <checksumPolicy>ignore</checksumPolicy>
                <updatePolicy>daily</updatePolicy>
            </snapshots>

            <releases>
                <enabled>true</enabled>
            </releases>
        </repository>
      </repositories>

      <pluginRepositories>
        <pluginRepository>
            <id>nexus</id>
            <name>Nexus plugins</name>
            <url>http://localhost:8081/nexus/content/groups/public/</url>
            <layout>default</layout>
            <releases>
                <enabled>true</enabled>
                <updatePolicy>never</updatePolicy>
                <checksumPolicy>ignore</checksumPolicy>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>   

    <profile>
      <id>central</id>
      <repositories>
        <repository>
            <id>central</id>
            <name>Central Repository</name>
            <url>http://central</url>
            <layout>default</layout>
            <!--<snapshots>-->
            <!--<enabled>false</enabled>-->
            <!--</snapshots>-->
            <snapshots>
                <enabled>true</enabled>
                <checksumPolicy>warn</checksumPolicy>
                <updatePolicy>daily</updatePolicy>
            </snapshots>

            <releases>
                <enabled>true</enabled>
            </releases>
        </repository>
      </repositories>

    <pluginRepositories>
        <pluginRepository>
            <id>central</id>
            <name>Nexus plugins</name>
            <url>http://central</url>
            <layout>default</layout>
            <releases>
                <enabled>true</enabled>
                <updatePolicy>never</updatePolicy>
                <checksumPolicy>warn</checksumPolicy>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>

  </profiles>

  <activeProfiles>
    <activeProfile>nexus</activeProfile>
    <activeProfile>central</activeProfile>
  </activeProfiles>


4、    将Nexus做为所有仓库的镜像。

        这样所有仓库请求都会转到Nexus私有仓库。镜像的配置:

  <mirrors>
     <mirror>
      <id>nexus</id>
      <mirrorOf>*</mirrorOf>
      <name>All repositories mirror</name>
      <url>http://localhost:8081/nexus/content/groups/public/</url>
    </mirror>
  </mirrors>

        也就是为所有仓库开启镜像。


5、    部署构件至Nexus


        部署构件到Nexus有两种方式、一是将我们的项目上传到Nexus私服、二是手动将第三方构件部署到宿主仓库。


6、    使用Maven部署构件至Nexus

        日常开发中、可以将快照版本的构件直接部署到Nexus中的Snapshot宿主仓库、或者我们自己定义的策略为Snapshot的仓库。发布版的可以直接部署到Nexus中策略为Release的仓库。POM中的配置:

 

    <distributionManagement>
        <repository>
            <id>nexus-release</id>
            <name>Project release repository</name>
            <url>http://localhost:8081/nexus/content/repositories/releases/</url>
            <!--<url>http://localhost:8081/nexus/content/repositories/Foo_Release/</url>-->
        </repository>

        <snapshotRepository>
            <id>nexus-snapshot</id>
            <name>Project snapshot repositories</name>
            <url>http://localhost:8081/nexus/content/repositories/snapshots/</url>
            <!--<url>http://localhost:8081/nexus/content/repositories/Foo_Snapshots/</url>-->
        </snapshotRepository>
    </distributionManagement>

        Nexus内置的仓库对于匿名用户是只读的、为了能部署构件、还要在settings.xml中配置认证信息、具体是通过仓库的id关联的。认证信息:

 

  <servers>
    <server>
      <id>nexus-release</id>
      <username>admin</username>
      <password>admin123</password>
    </server>
    <server>
      <id>nexus-snapshot</id>
      <username>admin</username>
      <password>admin123</password>
    </server>
  </servers>

        下面会提到Nexus内置的用户以及他们拥有的权限。


7、    手动部署第三方构件至Nexus

        首先选择一个宿主仓库、比如Nexus内置的3rdparty、如下图:


         上传好之后就可以在Browse index选项中看到了。


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
配置Maven私有仓库,可以使用Sonatype Nexus 3作为Maven仓库管理器。 以下是配置Nexus 3作为Maven私有仓库的步骤: 1. 安装Nexus 3 可以从Sonatype官网下载Nexus 3,然后按照说明进行安装和配置。 2. 创建Maven仓库Nexus 3中创建Maven仓库,可以通过以下步骤完成: - 登录到Nexus 3的Web界面,并进入“Repositories”页面。 - 点击“Create Repository”按钮,并选择“Maven(hosted)”类型。 - 输入仓库的名称和URL,并选择存储位置等配置信息。 - 点击“Create Repository”按钮,完成仓库创建。 3. 配置MavenMaven的settings.xml文件中配置Nexus 3作为私有仓库,可以通过以下步骤完成: - 打开Maven的settings.xml文件,一般位于${user.home}/.m2/目录下。 - 在<settings>标签内添加如下配置: ``` <mirrors> <mirror> <id>nexus</id> <mirrorOf>*</mirrorOf> <url>http://nexus3.example.com/repository/maven-releases/</url> </mirror> </mirrors> ``` 其中,nexus3.example.com/repository/maven-releases/是Nexus 3仓库的URL。 4. 发布和使用Maven包 在使用Nexus 3作为Maven私有仓库时,可以通过以下步骤发布和使用Maven包: - 在项目的pom.xml文件中配置Nexus 3仓库的URL等信息。 - 使用Maven命令发布项目的Maven包到Nexus 3仓库中。 - 在其他项目的pom.xml文件中添加Nexus 3仓库的URL,然后使用Maven命令从Nexus 3仓库中获取依赖。 以上是配置Nexus 3作为Maven私有仓库的基本步骤,具体操作可以根据实际情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值