`

maven搭私服nexus

 
阅读更多

使用Maven构建和管理项目是非常享受的一件事,我们可以从Maven中央仓库下载所需要的构件(artifact),但实际开发中由于种种原因我们需要在架设一个Maven本地代理仓库,如:不方便访问公网、节省带宽和时间、管理自家的共用artifact等等。本地地理仓库是我自己取的名字,为了不与下文的本地仓库想混淆。

获取构建的流程如下:用户使用Maven构建项目时,首先是要直接从本地仓库获取的,如果本地仓库没有,它会根据setting.xml的设置去首先尝试从远程仓库下载构件至本地仓库,然后再使用本地仓库的构件。如果setting.xml设置的远程仓库是本地代理仓库,则本地代理仓库先尝试从自己的库中获取,如果没有再从远程仓库(比如中央仓库)下载构件至本地仓库。

Nexus 是一个优秀的Maven仓库管理器,还提供了强大的仓库管理功能,构件搜索功能,它基于REST,友好的UI是一个extjs的REST客户端,它占用较少的内存,基于简单文件系统而非数据库。这些优点使其日趋成为最流行的Maven仓库管理器。本文就使用Nexus搭建一个本地代理仓库。

下载和安装

Nexus官方下载地址:http://www.sonatype.org/nexus/go,目前最新的版本是2.7.2。

Nexu安装非常容易,因为它内嵌了Jetty,只要有JRE救能直接运行。解压Nexu包会得到两个目录nexus-2.7.2-03和sonatype-work,sonatype-work是默认仓库目录。运行、安装都是使用nexus-2.7.2-03/bin/nexus.bat文件,它的使用方式:

  1. Usage:nexus.bat { console : start : stop : restart : install : uninstall }

其中console是控制台方式运行,install是以windows service寄存,uninstall是下载windows service,start是运行windows service,stop是停止windows service,restart是重启windows service,。

Nexus默认端口是8081,可以在nexus-2.7.1-01/conf/nexus.properties中修改,启动后就可以通过地址:http://localhost/:8081/nexus 来访问了。界面如下:


管理仓库

管理仓库需要先登录,默认登录用户名/密码是admin/admin123。登录后就可以看到左栏菜单的管理项。

这里,可以管理仓库,配置Nexus系统,管理任务,管理用户,角色,权限,查看系统的RSS源,管理及查看系统日志,等等。

  1. 设置Nexus代理上公网
    如果您的本地代理仓库服务器没有公网权限,Nexus为你留了使用代理的路子,点击右边菜单的“Server”,在右边找到:

    添加你的代理服务器即可。
  2. 仓库管理
    点击左边导航栏的Repositories,界面的主面板会显示所有一个所有仓库及仓库组的列表,你会看到它们的Type字段的值有group,hosted,proxy,virtual。这里我们不关心virtual,只介绍下另外三种类型:
    • hosted,本地代理仓库,通常我们会部署自己的构件到这一类型的仓库。
    • proxy,代理的远程仓库,它们被用来代理远程的公共仓库,如maven中央仓库。
    • group,仓库组,用来合并多个hosted/proxy仓库,通常我们配置maven依赖仓库组。
    如何管理、添加等操作,Nexus都写的很清楚了,我就不一一赘述了。

修改setting.xml配置Maven的仓库

Maven安装后默认的是使用中央仓库,这是为了能让Maven开箱即用。而Maven缺省的本地仓库地址为${user.home}/.m2/repository。也就是说,一个用户会对应的拥有一个本地仓库。你也可以自定义本地仓库的位置,修改${user.home}/.m2/settings.xml。

首先需要修改Mirrors

  1. <mirrors>
  2. <!-- mirror | Specifies a repository mirror site to use instead of a given
  3. repository. The repository that | this mirror serves has an ID that matches
  4. the mirrorOf element of this mirror. IDs are used | for inheritance and direct
  5. lookup purposes, and must be unique across the set of mirrors. | -->
  6. <mirror>
  7. <id>nexusc</id>
  8. <mirrorOf>*</mirrorOf>
  9. <name>Nexus</name>
  10. <url>http://localhost:8081/nexus/content/groups/public/</url>
  11. </mirror>
  12. </mirrors>

在执行 Maven 命令的时候, Maven 还需要安装一些插件包,这些插件包的下载地址也让其指向本地代理仓库的地址,修改如下:

  1. <profile>
  2. <id>jdk-1.4</id>
  3. <activation>
  4. <jdk>1.4</jdk>
  5. </activation>
  6. <repositories>
  7. <repository>
  8. <id>nexus</id>
  9. <name>local private nexus</name>
  10. <url>http://localhost:8081/nexus/content/groups/public/</url>
  11. <releases>
  12. <enabled>true</enabled>
  13. </releases>
  14. <snapshots>
  15. <enabled>false</enabled>
  16. </snapshots>
  17. </repository>
  18. </repositories>
  19. <pluginRepositories>
  20. <pluginRepository>
  21. <id>nexus</id>
  22. <name>local private nexus</name>
  23. <url>http://localhost:8081/nexus/content/groups/public/</url>
  24. <releases>
  25. <enabled>true</enabled>
  26. </releases>
  27. <snapshots>
  28. <enabled>false</enabled>
  29. </snapshots>
  30. </pluginRepository>
  31. </pluginRepositories>
  32. </profile>

关于更多setting.xml字段解释请看这里

现在你就可以使用本地仓库构建Maven项目了,踏上愉快的构建之旅!!

部署构件至Nexus

  1. 通过Nexus UI部署

    有时候有个jar文件你无法从公共Maven仓库找到,但是你能从其它得到这个jar文件(甚至是POM),那么你完全可以将这个文件部署到Nexus中,使其成为标准流程的一部分。步骤如下:

    点击左边导航栏的"Repository",在右边的仓库列表中选择一个仓库,如“3rd Party”,然后在页面下方的tab选择“Artifact Upload Artifact(s)”,你会看到构件上传界面。选择你要上传的构件,并指定POM,(或者手工编写GAV等信息),最后点击Upload,该构件就直接被部署到了Nexus的"3rd Party"仓库中。

  2. 通过Maven部署
    更常见的用例是:团队在开发一个项目的各个模块,为了让自己开发的模块能够快速让其他人使用,你会想要将snapshot版本的构件部署到Maven仓库中,其他人只需要在POM添加一个对于你开发模块的依赖,就能随时拿到最新的snapshot。
    以下的pom.xml配置和settings.xml能让你通过Maven自动化部署构件:
    pom.xml
    1. <project>
    2. ...
    3. <distributionManagement>
    4. <repository>
    5. <id>nexus-releases</id>
    6. <name>Nexus Release Repository</name>
    7. <url>http://localhost:8081/nexus/content/repositories/releases/</url>
    8. </repository>
    9. <snapshotRepository>
    10. <id>nexus-snapshots</id>
    11. <name>Nexus Snapshot Repository</name>
    12. <url>http://localhost:8081/nexus/content/repositories/snapshots/</url>
    13. </snapshotRepository>
    14. </distributionManagement>
    15. ...
    16. </project>
    settings.xml
    1. <settings>
    2. ...
    3. <servers>
    4. <server>
    5. <id>nexus-releases</id>
    6. <username>admin</username>
    7. <password>admin123</password>
    8. </server>
    9. <server>
    10. <id>nexus-snapshots</id>
    11. <username>admin</username>
    12. <password>admin123</password>
    13. </server>
    14. </servers>
    15. ...
    16. </settings>
    这里我们配置所有的snapshot版本构件部署到Nexus的Snapshots仓库中, 所有的release构件部署到Nexus的Releases仓库中。由于部署需要登陆,因为我们在settings.xml中配置对应Repository id的用户名和密码。
    然后,在项目目录中执行mvn deploy ,你会看到maven将项目构件部署到Nexus中,浏览Nexus对应的仓库,就可以看到刚才部署的构件。当其他人构建其项目时,Maven就会从Nexus寻找依赖并下载。
分享到:
评论

相关推荐

    Maven Nexus 私服搭建

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

    maven 私服 nexus2 nexus3 安装与说明

    maven 私服 nexus2 nexus3 安装与说明,只有简单的安装,没有详细的配置使用说明

    maven 私服 nexus3 安装包

    【 Maven 私服 Nexus3 安装详解及实践】 Maven 私服 Nexus3 是一个企业级的仓库管理工具,它允许开发团队集中管理和分发软件构件,包括 Maven 的 JAR 包、NPM 包、Gradle 构件等。在进行大型项目开发时,私有 Maven...

    linux-maven-maven私服nexus安装文档

    Linux Maven Maven私服Nexus安装文档主要涵盖了在CentOS操作系统上安装和配置Maven以及搭建Maven私有仓库Nexus的详细步骤。以下是整个过程的详细说明: 1. **安装Maven** - **确认安装源**:首先,你需要检查你的...

    开发+MAVEN私服+nexus最新版+jar包依赖

    本文将详细介绍如何使用最新的Nexus版本搭建和使用MAVEN私服,以及如何实现jar包依赖。 **1. Maven与Maven私服** Maven是Apache软件基金会开发的一款项目管理和集成工具,它通过POM(Project Object Model)文件来...

    建立Maven私服 – Nexus下载、安装、配置、使用

    Nexus是Sonatype公司提供的一个强大的Maven私服解决方案,不仅支持Maven,还支持其他如npm、RubyGems等包管理工具。 ## 1. Nexus下载 首先,你需要从Sonatype官方网站...

    配置maven私服nexus

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

    maven私服nexus学习视频百度网盘下载.txt

    本视频讲解了maven的私服nexus部署和应用,一共15集,欢迎大家学习下载

    Maven私服nexus安装包

    【 Maven私服Nexus的安装】 Nexus的安装通常涉及以下几个步骤: 1. **下载Nexus**:你已经拥有名为“nexus-2.12.0”的安装包,这是一个早期版本。现在最新的Nexus版本为Nexus Repository Manager 3,建议使用最新...

    Maven私服Nexus搭建详细步骤的过程

    Maven私服Nexus搭建详细配置介绍,需要修改settings.xml、pom.xml等文件的参数

    Windows 下Nexus搭建Maven私服

    ### Windows 下 Nexus 搭建 Maven 私服详解 #### 一、为什么使用 Nexus 在软件开发过程中,尤其是采用 Maven 构建管理的项目中,依赖管理是非常关键的一环。通常,开发人员需要从 Maven 中央仓库下载各种依赖库到...

    最新maven私服工具nexus.zip

    ** Maven Nexus私有仓库工具详解 ** Maven Nexus是一款强大的基于Java开发的Maven仓库管理器,它在软件开发过程中,特别是在Java世界里,扮演着至关重要的角色。Nexus不仅作为一个代理服务器,帮助开发者获取远程...

    maven私服nexus最新版本2.14

    ** Maven 私服 Nexus 最新版本 2.14 知识详解 ** Maven 是一个广泛使用的项目管理和综合工具,它通过管理项目的构建、依赖关系以及发布等流程,简化了 Java 应用的开发过程。Nexus 是 Sonatype 公司推出的一款强大...

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

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

    maven nexus私服构件示例

    Maven Nexus 私服构件示例是一个实用的教程,旨在帮助开发者理解如何在本地环境中搭建和使用Nexus作为Maven的私有仓库。这个示例包括一个父Maven项目以及多个子项目,这些子项目涵盖了不同的模块,如业务逻辑、持久...

    Maven私服Nexus包下载

    nexus-3.26.1-02-unix.tar.gz 3.26最新版本,nexus-3.26.1-02-unix.tar.gz 3.26最新版本,nexus-3.26.1-02-unix.tar.gz 3.26最新版本,nexus-3.26.1-02-unix.tar.gz 3.26最新版本,nexus-3.26.1-02-unix.tar.gz 3.26...

    maven使用及Nexus搭建Maven私服.pdf

    ### Maven使用及Nexus搭建Maven私服的知识点详解 #### Maven简介与作用 Maven是Apache软件基金会组织下的一个开源项目,它是一个项目管理和综合工具,主要用于Java项目的构建、依赖管理和项目信息管理。通过Maven...

    maven私服搭建-nexus的部署

    maven私服搭建-nexus的部署 Maven 私服是指在局域网或 Intranet 中搭建的 Maven 仓库,用于存储和管理项目依赖的 Jar 包。Nexus 是一个流行的 Maven 私服解决方案,提供了强大的仓库管理功能。 在本文中,我们将...

    Linux版maven私服nexus

    Linux版的Maven私有仓库服务Nexus是一个强大的工具,尤其在Java开发环境中,它用于存储、管理和分发软件库组件。Nexus是Sonatype公司的一款产品,它提供了对Maven、Gradle和其他构建工具的强大支持,使得团队可以更...

Global site tag (gtag.js) - Google Analytics