nexus3.14.0版本linux环境安装、启动、搭建私库

本文介绍的是nexus3.14.0版本在linux环境下安装、启动、搭建私库。

nexus3以上的版本太新了,网上很少介绍安装细节的。据了解和2.X版本有所不同了。

1、前提

linux机器上需先安装好jdk,并且配置好java环境变量。

安装好maven,并且配置好maven环境变量。

2、安装

把下载好的nexus-3.14.0-04-mac.tgz文件放到/opt/目录下。这个目录你自己可以随意定。

进入tgz文件所在目录: cd /opt/

在/opt目录下解压缩tgz文件命令: tar -zxvf nexus-3.14.0-04-mac.tgz

解压缩后当前目录出现了两个目录: nexus-3.14.0-04 和 sonatype-work,注意这个sonatype-work也是个有用的文件夹,不要删除。

3、修改配置文件

修改启动文件以root用户启动

进入安装下的bin目录: cd /opt/nexus-3.14.0-04/bin

用vim命令修改启动文件nexus:  vim nexus

找到127行(如何显示行号自行百度),把原来的run_as_root=true改为false,这里我是注释掉原来那行,新增加了一行run_as_root=false,如下:

#run_as_root=true
run_as_root=false

4、启动

进入启动相关配置文件:  cd /opt/nexus-3.14.0-04/etc/  

然后查看配置文件:cat nexus-default.properties

应用启动端口

  application-port=8081

应用启动上下文

  nexus-context-path=/     

进入bin目录,启动nexus: ./opt/nexus-3.14.0-04/bin/nexus start        注意最前面的那个点不要忽略,最后的start参数之前要有一个空格

执行start命令后,输出:Starting nexus

我本地启动大约需要30秒左右,查看nexus是否已启动命令:ps -ef|grep nexus   如果有输出则证明启动了。

验证是否启动成功,在浏览器里输入url: 

http://127.0.0.1:8081/          如果在别的机器访问,例如我这里是http://192.168.125.150:8081/  显示不出网页,考虑可能是linux启用了防火墙,限制了端口号。

这里的url就包含了启动端口启动上下文

浏览器截图如下:

 

5、查看nexus相关配置

点击右上角的Sign in ,用户名和密码输入(默认的):admin / admin123。

点击设置按钮,再进入System Information菜单。

1、查看版本信息、节点信息、安装目录:

 

2、查看jdk安装目录:

3、查看maven安装目录:

 4、系统运行时内存情况、线程、联网情况

其他系统信息不一一列举。

6、搭建私库3rd_part

感谢此老兄:https://blog.csdn.net/u013887008/article/details/79429973(向nexus3私服上传jar包)

使用默认的用户名和密码登录:admin / admin123。

新建仓库:3rd_part

在nexus3.X版本已经没有repository ID的概念了,所以取个name就好,配置文件需要用到repository ID的地方统统使用name就行。新建repository:

注意上图的 Release,nexus2不清楚,但是在nexus3中,这个库要区分是存放RELEASE稳定版本的,还是存储SNAPSHOT不稳定版本的。

这会影响到当你使用mvn deploy命令把本地的jar或其他maven构件上传到nexus私服时,如果你的项目打包版本例如是0.0.1-SNAPSHOT,就会说不允许上传到release稳定版本库中。

7、为新版本库3rd_part归纳到中央库maven-public

当新库3rd_part创建完毕时,要把新库归纳到我们的版本库中心:maven-public,这个库是所有其他库的中央库,包含了其余所有库的包,归纳操作步骤:

双击maven-public库,进入详细页:

把新建的库3rd_part点击向右箭头归纳到中央库的组内来,然后点击save保存。

8、为新版本库3rd_part创建权限、角色、用户(可选)

在之前的nexus版本中,但凡创建一个新库,都要手动创建该库的权限,但是nexus3中,系统已经自动创建出了新库的所有权限nx-repository-admin-maven2-3rd_part-*

其余例如read、delete、browse等权限也都已经自动创建好了,权限细粒度还是比较好的。

 

接下来需手动创建角色:nx-role-3rd_part :

把nx-admin的最大角色包含进来到新角色nx-role-3rd_part ,并把新库的所有权限 nx-repository-admin-maven2-3rd_part-* 都赋予给这个角色,最后点击save保存:

创建用户部分可选,此处省略,类似以上步骤。练习用途的话直接使用admin/admin123即可。如果需要创建用户,务必把roles角色赋予给这个用户。

9、maven的setting.xml配置

 配置你访问某个repository仓库用哪个用户名和密码,如果你有多个仓库,对应不同项目上传的私服repository地址,则需要在这里配置多个server标签,在<servers>中添加:

<server>
         <id>3rd_part</id>  <!-- 注意这里的id一定要和你项目中的私服地址id一模一样,如果这里的用户名密码写错了,会报错:会报错401, ReasonPhrase: Unauthorized. -->
        <username>admin</username>
        <password>admin123</password>
</server>

 

配置你的私服地址,在<mirrors>中添加,

<mirror>
         <!--此处配置所有的构建均从私有仓库中下载 *代表所有,也可以写central -->
         <id>nexus3</id>
         <mirrorOf>*</mirrorOf>
        <url>http://192.168.125.150:8081/repository/maven-public/</url>
     </mirror>

 

在<profiles>中添加:

<profile>
             <id>nexus3</id>
             <repositories>
                 <repository>
                     <id>maven-public</id>   <!-- 1111, 这里的id需和2222那里的一样,在同一个profile里  -->
                     <url>http://192.168.125.150:8081/repository/maven-public/</url>
                     <releases><enabled>true</enabled></releases>
                     <snapshots><enabled>true</enabled></snapshots>
                 </repository>
             </repositories>
             <pluginRepositories>  <!-- 这里是插件仓库地址 -->
                 <pluginRepository>
                     <id>maven-public</id>  <!-- 2222, 这里的id需和1111那里的一样,在同一个profile里  -->
                     <url>http://192.168.125.150:8081/repository/maven-public/</url>
                     <releases><enabled>true</enabled></releases>
                     <snapshots><enabled>true</enabled></snapshots>
                 </pluginRepository>
             </pluginRepositories>
</profile>    

 

启用id为nexus3的profile的配置:

<activeProfiles>
        <activeProfile>nexus3</activeProfile>
  </activeProfiles>

 

 

10、项目私服配置

 在<project>标签下添加distributionManagement标签,这个标签应该和<groupId><artifactId>这些标签是同级的

 

<!-- 这个配置是上传到私服的配置 -->
    <distributionManagement>
        <repository>
            <!-- 上传到私服的仓库id。注意:nexus3里没有了repository id的概念,直接使用name作为id的值即可,也可以起一个另外的有意义的名字。
          但是!!此id的值必须与setting.xml里server标签里的其中一个id相同,server里配置的用户名和密码才能对这个私库起作用,否则,会报错401, ReasonPhrase: Unauthorized.
        
--> <id>3rd_part</id> <!-- 上传到私服的仓库name --> <name>3rd_part</name>
        <!-- 一般项目都是上传到自己的项目私库,每个项目的私库应该分开,尤其是微服务项目。同一个微服务项目下的各个子项目应该被放在同一个私库。 -->
<url>http://192.168.125.150:8081/repository/3rd_part/</url> </repository> </distributionManagement>

 注意:nexus3里没有了repository id的概念,直接使用name作为id的值即可,也可以起一个另外的有意义的名字。

11、上传jar、war到私服

打开cmd,到项目根目录下,按照以下步骤执行maven命令:

mvn clean     //清空target目录

mvn install     //打包项目到target目录

mvn package    //打包项目并且将包同步到本地maven库

mvn deploy       //将打包好的包同步上传到私库,deploy命令发布成功截图如下:

 注意,如果你mvn deploy执行的是父类项目,也就是这个项目中的pom.xml中有以下标签的项目:

<modules>
  <module>../project1</module>
  <module>../project2</module>
</modules>

那么就会把project1和project2都upload上传到nexus私服。

12、验证上传到私库的包

在3rd_part私库中,确实找到了上传的jar包:

13、上传包的存放地址

感谢这位老兄:https://www.cnblogs.com/acm-bingzi/p/mavenNexusPath.html (maven上传jar包到nexus私服后的存放路径 以及 使用IDEA上传jar包的步骤)

上图中可以看到以.jar命名的文件,也可以下载。

这让我一度以为是以jar包的形式保存在本地,但事实证明,保存在本地的最终是一个 .bytes 类型的文件,它的默认路径在\sonatype-work\nexus3\blobs\default\content下面以.bytes的文件存在:

注意这个sonatype-work的文件夹在nexus3.14版本中是和nexus-3.14.0-04文件夹同处于一个文件夹下的同一层级。

在tar -zxvf命令解压缩nexus3.14.tar.gz文件时,自动解压出两个文件夹:sonatype-work 、nexus-3.14.0-04

 

posted on 2018-12-01 20:39  梦幻朵颜  阅读(16657)  评论(0编辑  收藏  举报