在一个,我们描述了如何配置安装nexus制,本节,我们来介绍nexus采用

1.登录



在红色的部分点击登陆。输入username与password admin/admin123。

这里能够配置nexus系统。管理用户。管理角色,管理任务,查看系统Rss源以及查看系统日志,本文就介绍nexus最主要的使用方法。

2.代理maven中央仓库

点击右边菜单条的Repositories,界面的主面板会显示全部一个全部仓库及仓库组的列表。你会看到它们的type, type类型字段里有group,hosted。proxy。virtual四种类型,我们这里不关心virtual类型,介绍剩余三种类型:

  • hosted。本地仓库。通常我们会部署自己的构件到这一类型的仓库。

  • proxy,代理仓库。它们被用来代理远程的公共仓库,如maven中央仓库。
  • group。仓库组,用来合并多个hosted/proxy仓库。通常我们配置maven依赖仓库组。

由此我们知道。我们须要配置一个proxy代理仓库,事实上Nexus已经内置了Central,但我们须要做一些配置。点击仓库列表中的Central,例如以下图:



我们会在主界面的下半部分看到好几个页面Browse Index,Browse Remote,Browse Storage,Configuration,Health Check,Routing,summary,我们点击Configuration进行配置。你如今须要关心的两个配置项:Remote Storage Location 为远程仓库地址。对于Central来说是http://repo1.maven.org/maven2/;“Download Remote Indexes”顾名思义是指是否下载远程索引文件。Maven Central的该字段默觉得False,这是为了防止大量Nexus无意识的去消耗中央仓库的带宽(中央仓库有大量的构件,其索引文件也非常大)。

这里我们须要将其设置为True,然后点击Save。在Nexus下载的中央仓库索引文件之后。我们就能够在本地搜索中央仓库的全部构件。下图展示了我们刚才所涉及的配置:

3.加入一个代理仓库

这里我们再举一个样例,我们想要代理Sonatype的公共仓库。其地址为:http://repository.sonatype.org/content/groups/public/

过程例如以下。在Repositories面板的上方,点击Add。然后选择Proxy Repository,在下方的配置部分,我们填写例如以下的信息:Repository ID - sonatype;Repository Name - Sonatype Repository;Remote Storage Location - http://repository.sonatype.org/content/groups/public/

其余的保持默认值。须要注意的是Repository Policy,我们不想代理snapshot构件,原因前面已经描写叙述。

然后点击Save。

配置页面例如以下:



4.管理本地maven仓库

nexus提前定义了三个本地仓库,分别为Releases,Snapshots。和3rd Party。这三个仓库都有各自明白的目的。Releases用于部署我们自己的release构件。Snapshots用于部署我们自己的snapshot构件,而3rd Party用于部署第三方构件。有些构件如Oracle的JDBC驱动,我们不能从公共仓库下载到,我们就须要将其部署到自己的仓库中。

当然你也能够创建自己的本地仓库,步骤和创建代理仓库相似,点击Repository面板上方的Addbutton,然后选择Hosted Repository,然后在下方的配置面板中输入id和name,注意这里我们不再须要填写远程仓库地址,Repository Type则为不可改动的hosted。而关于Repository Policy,你能够依据自己的须要选择Release或者Snapshot,如图:

5.管理maven仓库组

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

Nexus提前定义了“Public Repositories”和“Public Snapshot Repositories”两个仓库组,前者默认合并全部提前定义的Release仓库。后者默认合并全部提前定义的Snapshot仓库。我们在本文前面的部分创建了一个名为“Sonatype Repository”的仓库,如今将其合并到“Public Repositories”中。

点击仓库列表中的“Public Repositories”,然后选择下方的”Configuration” Tab,在配置面板中,将右边“Avaiable Repositories”中的“Sonatype Repository”拖拽到左边的“Ordered Group Repository”中,如图:



创建仓库组和创建proxy及hosted仓库相似,这里不再赘述。须要注意的是format字段须要填写“maven2”,加入你感兴趣的仓库就可以。

6.搜索构件

在浩大的Maven仓库中一下下点击链接,浏览路径以寻找感兴趣的构件是一件非常郁闷的事情。

Nexus基于nexus-indexer提供构件搜索功能,要想对仓库进行搜索,不管是hosted,proxy,或者group,你都必须确认索引文件存在。这一点对于代理仓库尤其重要,有些远程仓库可能根本就没有索引,所以你无法搜索这些代理仓库。

有些远程仓库的远程索引非常大,如中央仓库达到了70M左右,那么第一次下载索引须要花非常多时间。所以要期望得到搜索结果,确保看到例如以下的文件:

一旦你的Nexus拥有了本地或者远程仓库的索引文件,你就能够享受Nexus的构件搜索功能了。不论登陆与否,你都能够使用keyword进行模糊搜索。比方我在左边导航栏上部的搜索框内输入junit,然后点击搜索button。右边立马会分页显示500多条的junit相关构件信息。

假设你了解很多其它的信息。你也能够通过限定groupId,artifactId,version进行搜索。点击导航栏中的“Advanced Search”。点击右边全部页面左上角的下拉框,选择“GAV Search”。笔者这里输入junit:junit:4.4,然后回车:

选择一项搜索结果,在页面下方会显示“Artifact Information”的面板。你能够点击”artifact”或者”pom”下载相应文件,而该面板右边更显示了一个Maven依赖配置,你能够直接复制该配置到Maven POM中,这是个十分方便的特性。

此外。值得一提的是,Nexus还支持基于classname的搜索,你仅仅需点击搜索页面右上角的下拉框,选择“Classname Search”,然后输入类名就可以,这里我不再赘述。

7.配置Maven使用Nexus

默认情况下,Maven依赖于中央仓库。这是为了能让Maven开箱即用,但仅仅这么做明显是错误的,这会造成大量的时间及带宽的浪费。既然文章的上节已经介绍了怎样安装和配置Nexus。如今我们就要配置Maven来使用本地的Nexus,以节省时间和带宽资源。

我们能够将Repository配置到POM中。但一般来说这不是非常好的做法,原因非常easy,你须要为全部的Maven项目反复该配置。因此,这里我将Repository的配置放到$user_home/.m2/settings.xml中:

<settings xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0    http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository>/Users/chendaoqiu/.m2/repository</localRepository>
<interactiveMode />
<usePluginRegistry />
<offline />
<pluginGroups />
<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 />
<proxies /> <profiles> <profile>
<id>dev</id>
<repositories>
<repository>
<id>nexus</id>
<url>http://42.121.113.40:8981/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories> </profile>
</profiles> <activeProfiles>
<activeProfile>dev</activeProfile>
</activeProfiles> </settings>

我们不能直接在settings.xml中插入<repositories>元素,这里我们编写了一个profile,并加入了一个profile并使用<activeProfile>元素自己主动将这个profile激活。这里的local-nexus仓库指向了刚才我们配置的Nexus中“Public Repositories”仓库组,也就是说。全部该仓库组包括的仓库都能供我们使用。

此外,我们通过 <release><snapshots>元素激活了Maven对于仓库全部类型构件下载的支持,当然你也能够调节该配置,比方说禁止Maven从Nexus下载snapshot构件。

使用该配置,Maven就会从你的Nexus服务器下载构件了。速度和从Central下载可不是一个数量级的。

8.部署构件至nexus

Nexus提供了两种方式来部署构件,你能够从UI直接上传,也能够配置Maven部署构件。

8.1通过nexus UI部署

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

8.2通过maven部署

更常见的用例是:团队在开发一个项目的各个模块,为了让自己开发的模块能够高速让其它人使用,你会想要将snapshot版本号的构件部署到Maven仓库中,其它人仅仅须要在POM加入一个对于你开发模块的依赖,就能随时拿到最新的snapshot。

下面的pom.xml配置和settings.xml能让你通过Maven自己主动化部署构件:

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
...
<distributionManagement>
<repository>
<id>nexus-releases</id>
<name>Nexus Release Repository</name>
<url>http://42.121.113.40:8981/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id>
<name>Nexus Snapshot Repository</name>
<url>http://42.121.113.40:8981/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
...
</project>

settings.xml

<settings xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0    http://maven.apache.org/xsd/settings-1.0.0.xsd">
...
<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>
... </settings>

这里我们配置全部的snapshot版本号构件部署到Nexus的Snapshots仓库中。 全部的release构件部署到Nexus的Releases仓库中。由于部署须要登陆,由于我们在settings.xml中配置相应Repository id的username与password。

然后,在项目文件夹中运行mvn deploy ,你会看到maven将项目构件部署到Nexus中,浏览Nexus相应的仓库,就能够看到刚才部署的构件。当其它人构建其项目时,Maven就会从Nexus寻找依赖并下载。

版权声明:本文博主原创文章,博客,未经同意不得转载。

构造Nexus,仓库部署成员Nexus仓的更多相关文章

  1. 如何使用Gradle的maven-publish将jar包或者war包上传到nexus仓库

    首先,在build.gradle里边声明依赖maven-publish插件: apply plugin: 'maven-publish' 然后,配置项目的信息和和nexus的信息: publishin ...

  2. Window下部署Maven Nexus

    Nexus下载地址:https://www.sonatype.com/download-oss-sonatype 选择相应的版本下载后,本人下载的是nexus-2.12.0-01-bundle.zip ...

  3. Nexus仓库构建

    1 . 私服简介 私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件.有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库:否则,私服请求外部 ...

  4. 配置nexus仓库

    Nexus有许多默认仓库:Central,Releases,Snapshots,和3rd Party 1.配置central仓库 Nexus内置了Maven中央代理仓库Central.选择仓库列表中的 ...

  5. (十二)maven之nexus仓库的基本用法

    nexus仓库的基本用法 ① 启动nexus. 上一章有提到:https://www.cnblogs.com/NYfor2018/p/9079068.html ② 访问http://localhost ...

  6. Linux搭建Nexus仓库+高可用方案

    Linux搭建nexus仓库 1.安装jdk 1.1 获取安装包,解压到指定目录: tar xf jdk.tar.gz -C /opt/export 1.2 配置环境变量: # vim /etc/pr ...

  7. 解决nexus仓库只能拉取不能推送的问题

    当时正在使用jenkins自动构造镜像推送到nexus上的docker镜像仓库,突然间就报错如下,没法推送,超过重试次数后也是没法推送: ERROR: Build step failed with e ...

  8. 【Maven实战】仓库介绍和Nexus的安装

    在Maven中我们之前进行配置一个项目的依赖时,引用一下jar包,这些jar包第一次都会从一个地方进行下载,这个地方称为仓库,而对于仓库一般有本地仓库和中心仓库之分,但是我们一般在做项目时会在自己的服 ...

  9. docker --Nexus仓库

    Nexus 简介 Nexus 是个仓库管理器,目前主要分2大版本:2.X 和 3.X.2.X 主要支持的格式是Maven.P2.OBR.Yum.3.X主要支持的是Docker.NuGet.npm.Bo ...

随机推荐

  1. libuv 初窥--转

    过年了,人都走光了,结果一个人活也干不了.所以我便想找点东西玩玩. 今天想试一下 libev 写点代码.原本在我那台 ubuntu 机器上一点问题都没有,可在 windows 机上用 mingw 编译 ...

  2. 获取ocx运行路径的另一种方法

    在InitInstance里边可以获取   1 2 3 4 5 6 7 8 9 10 11 12     if (bInit)     {         // TODO: 在此添加您自己的模块初始化 ...

  3. 【改了一天的拓扑排序】POJ 1094——Sorting It All Out

    来源:点击打开链接 不知道怎么回事,wa了整整一天..在绝望的时候AC了. 重点是分步处理和三种情况的判断. 1.判断是否成环,成环了直接输出错误信息. 2.然后一条边一条边的加入,进行拓扑排序,如果 ...

  4. JPA的Embeddable注解

    来源于http://zjsword2000.blog.163.com/blog/static/4583983320083184844734/ 在hibernate中实现自定义类型,只要实现UserTy ...

  5. 苹果手表的真实触感信息(Real Touch Messaging)

    苹果手表凭借其炫酷的设计和界面,无疑已成为一个新的科技焦点,也是苹果在可穿戴领域的重头戏. Apple Watch 有一个非常吸引人的特性:Real Touch Messaging,也就是真实触感消息 ...

  6. Face-landmarks-detection-benchmark 人脸特征定位网站汇总

    源地址:https://www.douban.com/note/525032729/   https://github.com/delphifirst/FaceXhttps://github.com/ ...

  7. Disqus – About Disqus

    Disqus – About Disqus   Disqus is a free service that enables great online communities. As the web's ...

  8. Linux Force DHCP Client (dhclient) to Renew IP Address

    http://www.cyberciti.biz/faq/howto-linux-renew-dhcp-client-ip-address/‘m using Ubuntu Linux. How to ...

  9. Windows移动开发(四)——闭关修炼

    非常久不写博客了,不是由于不想写,仅仅是近期公司任务比較多,最终十一有时间出来冒泡了. 今天继续介绍移动开发中的重中之重--内存管理. C#代码是托管代码,C# 程序猿非常少像C/CPP程序猿那样为程 ...

  10. [置顶] github简单使用

    git的介绍可以看这里   http://zh.wikipedia.org/wiki/GitHub 安装和使用参考的这个    http://www.cnblogs.com/cocowool/arch ...