CentOS7安装部署Nexus3

CentOS7安装部署Nexus3

本教程主要用于CentOS7操作系统如何安装配置私服Nexus。

一.配置JDK

请参考本网站的文章:《CentOS7安装JDK

二.安装

  • 下载,需要能访问外网的网络。
$ mkdir ~/nexus
$ cd ~/nexus
$ wget https://download.sonatype.com/nexus/3/latest-unix.tar.gz
  • 解压
$ tar zxf latest-unix.tar.gz
$ ls
latest-unix.tar.gz  nexus-3.37.3-02  sonatype-work

说明:

  1. nexus-x.xx.x-x: 是nexus服务器相关的文件。

  2. sonatype-work: 是nexus工作的数据文件,上传下载的jar包就在这个文件夹下面。

三. 配置nexus.vmoptions

$ cd nexus-3.37.3-02
$ vim bin/nexus.vmoptions
  • 配置内存

如果内存比较少,则调整下VM参数,参考值如

-Xms500M -Xmx500M -XX:MaxDirectMemorySize=800M
  • 配置存储路径

如果内存比较少,则调整下VM参数,参考值如

-Dkaraf.data=../sonatype-work/nexus3
-Dkaraf.log=../sonatype-work/nexus3/log
-Djava.io.tmpdir=../sonatype-work/nexus3/tmp

四. 配置nexus-default.properties

$ cd nexus-3.37.3-02
  • 端口修改:
$ sed -i 's/application-port=8081/application-port=28080/' etc/nexus-default.properties
  • nexus-context-path修改

    比如想把访问路径改成/nexus3

$ sed -i 's#nexus-context-path=/#nexus-context-path=/nexus3#' etc/nexus-default.properties

五.启停命令

  • 启动
$ /home/nexus/nexus/nexus-3.37.3-02/bin/nexus start
  • 停止
$ /home/nexus/nexus/nexus-3.37.3-02/bin/nexus stop
  • 重启
$ /home/nexus/nexus/nexus-3.37.3-02/bin/nexus restart

六.验证

访问https://xx.xx.xx.xx:28080/nexus3

输入账号:admin

密码sonatype-work目录/nexus3/admin.password

登录后修改密码

七.管理私服本地仓库

7.1 仓库类型

Nexus有4个【类型】的数据仓库:hosted,proxy,group、virtual

  1. group(仓库组类型):又叫组仓库,用于方便开发人员自己设定的仓库;

  2. hosted(宿主类型):内部项目的发布仓库(内部开发人员,发布上去存放的仓库);

  3. proxy(代理类型): 从远程中央仓库中寻找数据的仓库(可以点击对应的仓库的Configuration页签下Remote Storage Location属性的值即被代理的远程仓库的路径);

  4. virtual(虚拟类型): 虚拟仓库(这个基本用不到,重点关注上面三个仓库的使用);

Policy(策略):表示该仓库为发布(Release)版本仓库还是快照(Snapshot)版本仓库;

7.2 默认仓库

Nexus预定义了2个本地仓库,分别是maven-releases, maven-snapshots

  • maven-releases:这里存放我们自己项目中发布的构建, 通常是Release版本的。

  • maven-snapshots:这个仓库非常的有用, 它的目的是让我们可以发布那些非release版本, 非稳定版本。

    默认仓库介绍

  1. maven-central(proxy): maven中央库,默认从https://repo1.maven.org/maven2/拉取jar

  2. maven-releases(hosted): 私库发行版jar

  3. maven-snapshots(hosted):私库快照(调试版本)jar

  4. maven-public(group): 仓库分组,把上面三个仓库组合在一起对外提供服务,在本地maven基础配置settings.xml中使用。

7.3 项目使用仓库

  • 修改maven的配置文件setting.xml文件

    一般私服都会有账号密码,在这里配置即可。

$ vim ~/3rd/apache-maven-3.3.9/conf/settings.xml


  <servers>

       <server>
       <id>deploymentRepo</id>
       <username>deployment</username>
       <password>aideployment</password>
     </server>

  </servers>

  • 修改用户家目录下$HOME/.m2目录的setting.xml文件

八.例子

8.1 新建仓库

1.在Repositories菜单页面,点击Create repository,选择maven2(proxy),输入名称比如(maven-ali), Remote storage对应输入https://maven.aliyun.com/repository/central

2.在Repositories菜单页面,点击Create repository,选择maven2(hosted),输入名称比如(inner)

  • Version policy选择Release
  • Deployment policy选择好对应的策略。

3.在Repositories菜单页面,点击Create repository,选择maven2(hosted),输入名称比如(inner-snapshot)

  • Version policy选择Snapshot

  • Deployment policy选择好对应的策略。

4.在新建一个public对外发布,然后把其他仓库(内部源、阿里云源、snapshot源)都集合在此组里。

image-20220223175959432

image-20220224111605065

8.2 上传jar包到仓库

1.点击网页顶部的"设置"左侧的按钮,在出现的左侧菜单点击"Upload"菜单,然后选择一个仓库,比如点击例子里的"inner"(这个可以自己创建)

image-20220223141622122

2.选择要上传的本地 jar 包,并填写好对应的 groupId、artifactId、version,点击 upload按钮。

image-20220223141941556

8.3 上传pom文件到仓库

跟jar包一样,选择对应的pom文件即可,不需要填写groupId、artifactId、version,直接点击 upload按钮。

8.4 上传SNAPSHOT版本

在有mvn工具的机器上,上传jar包或者pom文件到第一步的inner-snapshot仓库

mvn deploy:deploy-file -DgroupId=com.youcompany -DartifactId=your-artifactID -Dversion=1.0.0-SNAPSHOT -Dpackaging=jar -Dfile=./your-jar-1.0.1-SNAPSHOT.jar -Durl=http://10.3.3.23:28080/nexus3/repository/inner-snapshot/ -DrepositoryId=deploymentRepo


mvn deploy:deploy-file -DgroupId=com.youcompany -DartifactId=your-artifactID -Dversion=1.0.0-SNAPSHOT -Dpackaging=pom -Dfile=./your-jar-1.0.1-SNAPSHOT.pom -Durl=http://10.3.3.23:28080/nexus3/repository/inner-snapshot/ -DrepositoryId=deploymentRepo

其中-DrepositoryId=是在maven目录下的settings.xml里配置的id

     <server>
       <id>deploymentRepo</id>
       <username>deployment</username>
       <password>aideployment</password>
     </server>

另外username、password可以分配一个专门上传的账号。

九. 问题

9.1 异常报错

  • 问题
*UNKNOWN com.sonatype.nexus.plugins.outreach.internal.outreach.SonatypeOutreach - Could not download page bundle
org.apache.http.conn.HttpHostConnectException: Connect to sonatype-download.global.ssl.fastly.net:443 [sonatype-download.global.ssl.fastly.net/69.171.245.49] failed: 连接超时
  • 解决
登录账号,打开【System】--》【Capabilities】,将【Outreach:Management】禁用即可。

本文没有授权给任何组织、企业和个人转载,未经作者允许禁止转载!

欢迎关注我的公众号testerzhang,原创技术文章第一时间推送。

公众号二维码

updatedupdated2022-12-202022-12-20