`

Nexus私服使Maven更加强大

 
阅读更多

原文链接:http://blog.csdn.net/liujiahan629629/article/details/39272321

前边简单介绍了Maven,Maven默认提供的中央仓库是在远程网络服务Appache提供的,这对于我们开发时不合理的。如果我们没网了或者什么情况,我们怎么办?也就是说我们队中央仓库的依赖性太大。而Nexus私服则可以解决我们这个问题。先看下这张图应该大家就非才明白了:

 


 

    这样就相当于在我们本地的局域网搭建了一个类似中央仓库的服务器,我们开始将中央仓库的一些资料下载到私服务器上,然后平时我们的maven项目就是直接访问局域网内的私服即可,既节省了网络带宽也会加速项目搭建的进程,这样对我们开发来说,对公司来说都是非常好的选择。下边简单看一下Nexus私服的简单使用:

 

 

    1、Nexus下载

    下载地址:http://www.sonatype.org/nexus/go

 

    2、Nexus启动

    我下载的是zip包,解压后进入\nexus-2.1.2-bundle\nexus-2.1.2\bin\jsw\,根据操作系统类型选择文件夹,我选的是windows-x86-32文件夹,进入后可看到如下所示bat文件。

 


 

    双击console-nexus.bat运行。游览器中输入http://127.0.0.1:8081/nexus/,出现如下图所示就代表nexus已经启动成功。

 

    8081为默认的端口号,要修改端口号可进入nexus-2.1.2-bundle\nexus-2.1.2\conf\打开nexus.properties文件,修改application-port属性值就可以了。

 

    默认的用户名和密码:admin/admin123,登录后看到如下图所示:

 

    3、Nexus仓库

    nexus的仓库类型分为以下四种:

              group: 仓库组

              hosted:宿主

             proxy:代理

             virtual:虚拟

   首次登陆nexus后可以看到以下一个仓库组和多个仓库。

 

    PublicRepositories:  仓库组

                  3rd party: 无法从公共仓库获得的第三方发布版本的构件仓库

                  Apache Snapshots: 用了代理ApacheMaven仓库快照版本的构件仓库

                  Central: 用来代理maven中央仓库中发布版本构件的仓库

                  Central M1 shadow: 用于提供中央仓库中M1格式的发布版本的构件镜像仓库

                  Codehaus Snapshots: 用来代理CodehausMaven 仓库的快照版本构件的仓库

                  Releases: 用来部署管理内部的发布版本构件的宿主类型仓库

                 Snapshots:用来部署管理内部的快照版本构件的宿主类型仓库

    4、配置nexus

 

    4.1、开启远程索引

    新搭建的neuxs环境只是一个空的仓库,需要手动和远程中心库进行同步,nexus默认是关闭远程索引下载,最重要的一件事情就是开启远程索引下载。登陆nexus系统,默认用户名密码为admin/admin123。

点 击左边Administration菜单下面的Repositories,找到右边仓库列表中的三个仓库Apache Snapshots,Codehaus Snapshots和Maven Central,然后再没有仓库的configuration下把Download Remote Indexes修改为true。如下图

 

    然后在Apache Snapshots,Codehaus Snapshots和Maven Central这三个仓库上分别右键,选择Repari Index,这样Nexus就会去下载远程的索引文件。

 

    这样设置以后, Nexus会自动从远程中央仓库下载索引文件, 为了检验索引文件自动下载是否生效,可以却换到Browse Index

 

    在左边菜单栏里面有个Artifact Search, 在输入框里面输入你想要搜索的构件名字,比如:maven, 那么查询结果如下:

 

    4.2建立宿主仓库

    新 建公司的内部仓库,步骤为Repositories –> Add –>Hosted Repository,在页面的下半部分输入框中填入Repository ID和Repository Name即可,比如分别填入zfy 和 zfy repostiory,另外把Deployment Policy设置为Allow Redeploy,点击save就创建完成了。

这里我点击添加宿主类型的仓库,在仓库列表的下方会出现新增仓库的配置,如下所示:

 


 

    点击save按钮后就会在仓库列表中看到刚才新增的仓库。

 

 

    4.3、创建Nexus仓库组

    Nexus 中仓库组的概念是Maven没有的,在Maven看来,不管你是hosted也好,proxy也好,或者group也好,对我都是一样的,我只管根据 groupId,artifactId,version等信息向你要构件。为了方便Maven的配置,Nexus能够将多个仓库,hosted或者 proxy合并成一个group,这样,Maven只需要依赖于一个group,便能使用所有该group包含的仓库的内容。

    neuxs- 1.9.2.3中默认自带了一个名为“Public Repositories”组,点击该组可以对他保护的仓库进行调整,把刚才建立的公司内部仓库zfy repostiory加入其中,这样就不需要再在maven中明确指定内部仓库 的地址了。同时创建一个Group ID为public-snapshots、Group Name为Public SnapshotsRepositories的组,把Apache Snapshots、Codehaus Snapshots、Snapshots和zfy repostiory加入其中。

 


 


 

    到这里neuxs的安装配置就完成了,下面介绍如何在maven中使用自己的私服。

 

 

 

    4.4、创建Nexus代理仓库

    点击菜单栏上的Add按钮后选择Proxy Repository,看到如下所示配置界面:

 

    5、settings.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>   
          <server>   
          <id>nexus-releases</id>   
          <username>admin</username>   
          <password>admin123</password>   
        </server>   
        <server>   
          <id>nexus-snapshots</id>   
          <username>admin</username>   
          <password>admin123</password>   
        </server>   
      </servers>   
       
      <mirrors>    
        <mirror>    
          <id>nexus-releases</id>    
          <mirrorOf>*</mirrorOf>    
          <url>http://localhost:8081/nexus/content/groups/public</url>    
        </mirror>   
        <mirror>    
          <id>nexus-snapshots</id>    
          <mirrorOf>*</mirrorOf>    
          <url>http://localhost:8081/nexus/content/groups/public-snapshots</url>    
        </mirror>    
      </mirrors>    
        
      <profiles>   
       <profile>   
          <id>nexus</id>   
          <repositories>   
            <repository>   
              <id>nexus-releases</id>   
              <url>http://nexus-releases</url>   
              <releases><enabled>true</enabled></releases>   
              <snapshots><enabled>true</enabled></snapshots>   
            </repository>   
            <repository>   
              <id>nexus-snapshots</id>   
              <url>http://nexus-snapshots</url>   
              <releases><enabled>true</enabled></releases>   
              <snapshots><enabled>true</enabled></snapshots>   
            </repository>   
          </repositories>   
          <pluginRepositories>   
             <pluginRepository>   
                    <id>nexus-releases</id>   
                     <url>http://nexus-releases</url>   
                     <releases><enabled>true</enabled></releases>   
                     <snapshots><enabled>true</enabled></snapshots>   
                   </pluginRepository>   
                   <pluginRepository>   
                     <id>nexus-snapshots</id>   
                      <url>http://nexus-snapshots</url>   
                    <releases><enabled>true</enabled></releases>   
                     <snapshots><enabled>true</enabled></snapshots>   
                 </pluginRepository>   
             </pluginRepositories>   
        </profile>   
      </profiles>   
       
      <activeProfiles>   
          <activeProfile>nexus</activeProfile>   
      </activeProfiles>   
        
    </settings>   
  

   6 maven 项目 pom.xml配置 

 

<distributionManagement>   
            <!-- 两个ID必须与 setting.xml中的<server><id>nexus-releases</id></server>保持一致-->   
            <repository>   
                <id>nexus-releases</id>   
                <name>Nexus Release Repository</name>   
                <url>http://localhost:8081/nexus/content/repositories/releases</url>   
            </repository>   
            <snapshotRepository>   
                <id>nexus-snapshots</id>   
                <name>Nexus Snapshot Repository</name>   
                <url>http://localhost:8081/nexus/content/repositories/snapshots</url>   
            </snapshotRepository>   
        </distributionManagement>
7、mvn:deploy命令上传包,会发现下载路径必不是中央库的路径,而是nexus里面的仓库组路径。这个说明配置环境成功。

    嗯,以后部分是来自网络资料,总而言之知道了其中的原理,Nexus只不过是一个工具而已,我们搭建使用实践即可。学习中……

分享到:
评论

相关推荐

    Maven Nexus 私服搭建

    Maven Nexus 私服搭建 从零开始,资源下载、安装指导、开发配置说明

    Nexus搭建Maven私服 +maven安装步骤

    Nexus 搭建 Maven 私服 + Maven 安装步骤 Nexus 是一个功能强大且灵活的仓库管理工具,能够帮助开发团队更好地管理项目依赖项和构件。通过搭建 Nexus 私服,可以实现项目依赖项的集中管理、加速项目构建和部署、...

    Windows 下Nexus搭建Maven私服

    为了使 Maven 项目能够从 Nexus 下载依赖,需要对 Maven 的配置文件 `settings.xml` 进行调整: 1. **定位配置文件**: - 对所有用户统一配置:编辑 `maven\conf\settings.xml` 文件。 - 对单个用户配置:将 `...

    linux,nexus3.14+maven3.6.3.zip,搭建maven私服一步到位

    ### 配置Maven使用Nexus私服 1. 在用户的`.m2`目录下找到并编辑`settings.xml`文件。 2. 在`&lt;mirrors&gt;`标签内添加如下配置,指向Nexus的仓库: ```xml &lt;id&gt;local-nexus &lt;url&gt;...

    使用Nexus搭建Maven私服

    Nexus是一个非常强大的Maven仓库管理器,极大地简化了自己内部仓库的维护和外部仓库的访问。利用Nexus就可以只在一个地方就能够完全控制访问和部署在所维护仓库中的每个Artifact。并且它不需要数据库,它使用文件...

    maven 私服 nexus3 安装包

    总结,Nexus3 是一个强大且灵活的 Maven 私服解决方案,虽然在使用过程中可能会遇到各种问题,但通过了解其工作原理和配置细节,我们完全可以克服这些困难,充分利用它来优化软件开发流程。在日常开发中,不断学习和...

    maven私服搭建-nexus的部署

    Nexus 是一个流行的 Maven 私服解决方案,提供了强大的仓库管理功能。 在本文中,我们将介绍如何搭建一个 Maven 私服,使用 Nexus 作为私服解决方案,并详细介绍 Nexus 的安装、配置和使用。 一、Nexus 简介 ...

    maven nexus私服构件示例

    总之,Maven Nexus私服构件示例是一个很好的学习资源,它涵盖了Maven仓库管理的基础和实践,帮助开发者提升构建过程的效率和规范性。通过实践这个示例,你可以深入了解Maven与Nexus的结合使用,为你的项目构建一个...

    配置maven私服nexus

    Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。利用Nexus,你可以只在一个地方就能完全控制访问和部署在你所维护仓库中的每个Artifact。Nexus是一套“开箱即用”的系统不...

    在CentOS7上用Nexus3搭建Maven私服.doc

    在本文中,我们将详细介绍如何在CentOS7操作系统上使用Nexus3搭建Maven私有仓库。首先,确保系统已经安装了Java Development Kit (JDK) 8和Maven3。安装这两个组件的具体步骤可以通过搜索引擎获取。 一、所需环境 ...

    在CentOS下使用nexus搭建maven私服的安装教程

    Maven作为Java生态中最流行的构建工具之一,通过其强大的依赖管理和项目构建能力,极大地简化了这一过程。然而,在实际开发过程中,由于网络限制或安全性考虑,直接使用远程仓库(如中央仓库)可能存在一些问题。...

    nexus maven 私服搭建

    Nexus 是 Sonatype 公司提供的一款强大的 Maven 仓库管理器,它可以作为一个代理仓库,缓存外部仓库(如 Maven 中央仓库)的依赖,同时也可以作为内部仓库,用于存储和发布自定义组件。此外,Nexus 还支持 Ivy、...

    maven私服nexus最新版本2.14

    Nexus 是 Sonatype 公司推出的一款强大的 Maven 私服,它作为一个中央仓库管理器,提供了对 Maven 仓库的集中式管理和控制,包括本地仓库、远程仓库和代理仓库。 在 Maven 的生态系统中,Nexus 起到了至关重要的...

    nexus服务器,maven私服for Linux,兼容最新版

    Nexus服务器是一款强大的Maven仓库管理工具,特别适合在企业环境中使用,用于集中管理和分发软件构件,如JAR包。Maven私服是Nexus的一个重要应用,它充当了一个内部的、私有的Maven仓库,使得开发团队可以方便地共享...

    Nexus 私服之三“Maven 与 Nexus 协同工作”

    首先,Maven是一个强大的项目管理和集成工具,基于项目对象模型(Project Object Model, POM)。它通过读取POM.xml文件来管理项目依赖、构建过程以及执行各种生命周期阶段。Maven自动化了构建过程,使得开发者可以...

Global site tag (gtag.js) - Google Analytics