Windows nexus3 安装和配置 史上最详细

一、为什么要搭建私服nexus

1.本地开发机器上安装nexus

首先声明公司内部是有自己的nexus仓库,但是对上传jar包做了限制,不能畅快的上传自己测试包依赖。于是就自己在本地搭建了一个nexus私服,即可以使用公司nexus私服仓库中的依赖,也可以上传和使用自己的测试包依赖。

2.公司搭建私服作用:

原因很简单,有些公司都不提供外网给项目组人员,因此就不能使用maven访问远程的仓库地址,所以很有必要在局域网里找一台有外网权限的机器,搭建nexus私服,然后开发人员连到这台私服上,这样的话就可以通过这台搭建了nexus私服的电脑访问maven的远程仓库。还有就是公司有自己的jar可以发布到私服上等等。

此文章测试搭建的是本地开发机器上安装nexus,无论是本地还是公司私服的搭建,都是一样的。

二、环境搭建

1.首先确定我们的环境安装好maven,jdk等必须的环境
2.这些都准备好之后,去下载最新版本的nexus
下载地址:http://www.sonatype.org/nexus/go

wps593C.tmp.jpeg

三、解压

将下载的nexus-3.14.0-04-win64.zip解压到自定义目录即可。

四、配置nexus的端口和上下文路径

打开zip解压文件下的 ../nexus-3.14.0-04-win64/nexus-3.14.0-04/etc/nexus-default.properties。

wps593D.tmp.jpeg

1.如下属性可以自定义修改。
application-host : Nexus服务监听的主机
application-port: Nexus服务监听的端口,
nexus-context-path : Nexus服务的上下文路径

通常可以不做任何修改,但个人习惯于修改 application-host 为0.0.0.0(关于0.0.0.0与127.0.0.1的区别自行检索),我这里修改了端口和host。

五、运行环境配置

打开解压目录下的 ../nexus-3.14.0-04-win64/nexus-3.14.0-04/bin/nexus.vmoptions

可以在下图配置运行时的最大堆、最小堆等,可以根据个人的电脑以及需要修改,默认配置如下。


wps593E.tmp.jpeg

六、nexus安装

在.../nexus-3.14.0-04-win64/nexus-3.14.0-04/bin 目录下,

必须以管理员身份运行cmd :

  1. nexus.exe /run 命令可以启动nexus服务(参考官方文档)
  2. 安装nexus本地服务来启动(推荐使用这种方式,参考官方文档),命令如下所示。

安装nexus服务

PS D:\Nexus\nexus-3.14.0-04\bin> ./nexus.exe /install        //安装nexus服务

七、启动/关闭nexus服务

必须以管理员身份运行cmd :

 PS D:\Nexus\nexus-3.14.0-04\bin> ./nexus.exe /start         //启动nexus服务 

PS D:\Nexus\nexus-3.14.0-04\bin> ./nexus.exe /stop           //停止nexus服务

八、登录

如果没有做任何端口和上下文路径的修改,直接访问 http://localhost:8081即可。
我这里更改成 http://127.0.0.1:8181
  默认的用户名和密码分别是:admin/amdin123
修改密码:

QW123.png

D@UTE1XF1159.png
VVSWS28ZYUTX.png
3HEZ2HDC~QLD.png

九、nexus仓库类型介绍

默认安装有以下这几个仓库,在控制台也可以修改远程仓库的地址,第三方仓库等。

wps594F.tmp.jpeg
nexus仓库分类.png

十、分组仓库的使用

wps5950.tmp.jpeg

如上图所示,maven-public就我创建的组仓库。以及还创建了3个代理仓库,如下。

配置代理仓库:

1、jcenter仓库:https://jcenter.bintray.com/
创建过程:(其余一样)

L`Q%IKWE%OWW.png

W3RS1258`ST3.png
wps5960.tmp.jpeg

2、maven中央仓库:https://repo1.maven.org/maven2/
一般默认已经创建,没有创建就和上面一样1过程。

wps5961.tmp.jpeg

3、公司内部nexus仓库,这里就不给出了 ---可以选择配置
创建公司的代理

4、最后建立组仓库maven-public,如下。

(1) 将创建的仓库添加进仓库组。

  
Y2NGK)42U_XD.png

组仓库中包含了公司私服dist、jcenter、maven-central、本地maven-releases,本地maven-snapshots。

修改maven配置setting.xml文件

5.创建好组仓库之后,修改maven配置setting.xml文件,添加maven仓库镜像,如下。
Nexus的仓库对于匿名用户只是只读的。为了能够部署构件,我们还需要再settings.xml中配置验证信息:

<server>  
<id>nexus</id>  
<username>admin</username>  
<password>admin123</password>
</server> 

配置远程仓库下载jar地址

<mirror>      
<id>nexus</id>      
<mirrorOf>*</mirrorOf>
<url>http://127.0.0.1:8181/repository/maven-public/</url>   
</mirror>

接着修改maven项目中的pom.xml,如下。

6.不配置setting.xml中server就没有权限上传jar,只能下载jar。
这个配置可以下载jar和部署构建

<!--============== 配置nexus私服START =============== -->
<repositories>  
  <repository>    
    <id>maven-central</id>    
    <name>maven-central</name>  
    <!--仓库地址-->  
    <url>http://127.0.0.1:8181/repository/maven-central/</url>    
    <snapshots>     
        <enabled>true</enabled>    
    </snapshots>    
    <releases>      
        <enabled>true</enabled>    
    </releases>  
  </repository>
</repositories>

<pluginRepositories>  
  <pluginRepository>  
    <!--插件地址--> 
      <id>nexus</id>  
      <url>http://127.0.0.1:8181/repository/maven-public/</url>  
  </pluginRepository>
 </pluginRepositories>
 
<distributionManagement>  
  <repository>    
      <id>nexus</id>    
      <url>http://127.0.0.1:8181/repository/maven-releases/</url> 
  </repository>  
  <snapshotRepository>  
     <!--上传快照-->  
      <id>nexus</id>    
      <name>Nexus Snapshot</name>    
      <url>http://127.0.0.1:8181/repository/maven-snapshots/</url>  
  </snapshotRepository> 
  <site>   
      <id>nexus</id>    
      <name>Nexus Sites</name>   
      <url>dav:http://127.0.0.1:8181/repository/maven-snapshots/</url>  
  </site>
</distributionManagement>
<!--============== 配置私服End =============== -->

部署构件到私服

(1)Nexus的仓库对于匿名用户只是只读的。为了能够部署构件,我们还需要再settings.xml中配置验证信息:

<server>
  <id>snapshots</id>
  <username>admin</username>
  <password>admin123</password>
</server>
<server>
  <id>releases</id>
  <username>admin</username>
  <password>admin123</password>
</server>

其中,验证信息中service的id应该与POM中repository的id一致

(2)发布到私服的配置

<!-- 配置远程发布到私服,mvn deploy -->
<distributionManagement>
  <repository>
    <id>releases</id>
    <name> Nexus Release Repository </name>
    <url> http://127.0.0.1:8081/nexus/content/repositories/releases/ </url>
  </repository>
  <snapshotRepository>
    <id>snapshots</id>
    <name> Nexus Snapshot Repository </name>
    <url> http://127.0.0.1:8081/nexus/content/repositories/snapshots/ </url>           </snapshotRepository >
</distributionManagement >

部署命令:
还可以这么配

 <distributionManagement>
   <repository>
     <id>maven-releases</id>
     <name>Nexus Release Repository</name>
     <url>http://localhost:8082/repository/maven-releases/</url>
   </repository>
   <snapshotRepository>
     <id>maven-snapshots</id>
     <name>Nexus Snapshot Repository</name>
     <url>http://localhost:8082/repository/maven-snapshots/</url>
   </snapshotRepository>
</distributionManagement>

如果是gradle项目,修改init.gradle文件,如下。

 uploadArchives {
    def nexus_credentials = [userName: "admin", password: "admin123"]
    repositories.mavenDeployer {
        snapshotRepository(url: "http://127.0.0.1:8082/repository/maven-snapshots/") {
            authentication(nexus_credentials)
        }
        repository(url: "http://127.0.0.1:8082/repository/maven-releases/") {
            authentication(nexus_credentials)
        }
    }
}

十一、上传jar的两种方式:

比如上传这个jar
nexus提供了3rd party、Snapshots、Releases这三个目录存放第三方jar包


DRO)C12K)MRY.png

(1)登录nexus(默认用户名密码/admin、admin123)
(2)Create repository


clipboard.png

解释一下:
proxy:即你可以设置代理,设置了代理之后,在你的nexus中找不到的依赖就会去配置的代理的地址中找 hosted:你可以上传你自己的项目到这里面 group:它可以包含前面两个,是一个聚合体。一般用来给客户一个访问nexus的统一地址。 简单的说,就是你可以上传私有的项目到hosted,以及配置proxy以获取第三方的依赖(比如可以配置中央仓库的地址)。前面两个都 弄好了之后,在通过group聚合给客户提供统一的访问地址。


clipboard3.png

修改maven安装目录下的 /conf/settings.xml 文件,添加server 节点。如图:


clipboard4.png
1.方式一

开始上传jar
打开cmd输入修改后的模板
模板

mvn deploy:deploy-file -DgroupId=xxx.xxx -DartifactId=xxx -Dversion=0.0.2 -Dpackaging=jar -Dfile=D:\xxx.jar -Durl=http://xxx.xxx.xxx.xxx:8081/repository/3rdParty/ -DrepositoryId=3rdParty

模板解析:

-DgroupId 为上传的jar的groupId-DartifactId 为上传的jar的artifactId-Dversion 为上传的jar的需要被依赖的时候的版本号-Dpackaging为jar,-Dfile为jar包路径-Durl 为要上传的路径,可以通过以下方式获取到

举个例子:

C:\Users\Administrator>mvn deploy:deploy-file -DgroupId=dist.xdata.product -DartifactId=distexcel -Dversion=1.0.1.RELEASE -Dpackaging=jar -Dfile=I:\maven\repository\dist\xdata\product\distexcel\1.0.1.RELEASE\distexcel-1.0.1.RELEASE.jar -Durl=http://192.168.2.81:8181/repository/3rd-party/ -DrepositoryId=3rd-party
mvn deploy:deploy-file -DgroupId=dist.xdata.product -DartifactId=distexcel -Dversion=1.0.1.RELEASE -Dpackaging=jar -Dfile=I:\maven\repository\dist\xdata\product\distexcel\1.0.1.RELEASE\distexcel-1.0.1.RELEASE.jar -Durl=http://192.168.2.81:8181/repository/3rd-party/ -DrepositoryId=3rd-party

上传成功:


BYK.png

上传后在nexus中查看:


clipboard6.png
2.上传方式二:

更简单的上传方式

nexus提供了3rd party、Snapshots、Releases这三个目录存放第三方jar包


BB0YC2MG2XKJ.png
_1{_DZE_W85E.png
查看上传的jar.png

十二、nexus3.x权限配置

1.去掉“勾”是禁用匿名访权限。


clipboard7.png

2.角色创建


clipboard8.png

3.人员创建


clipboard9.png

4.代理配置

通过该配置可以使得两个Nexus服务器相关联。

(1)配置地址


clipboard10.png

(2)配置用户


clipboard11.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,463评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,868评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,213评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,666评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,759评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,725评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,716评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,484评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,928评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,233评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,393评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,073评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,718评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,308评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,538评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,338评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,260评论 2 352