centen os7 安装并配置Nexus3.9.0

准备工作:

  • jdk 1.8
  • nexus-3.9.0-01-unix.tar.gz(可以到官网上去下载最新版本的)
  • 客户端安装了maven(注意下方的settings.xml是配置在本地的maven,不是服务器上的,下图中我是直接放到了服务器中)

上传并解压安装包到/usr/local/java

修改配置
可以在nexus-default.properties文件中(位于/usr/local/java/nexus3.9.0/etc目录下)修改WEB访问端口等信息,默认为8081端口;(不做修改,查看一下)


防火墙放行8081端口;

查看防火墙状态 :firewall-cmd --state

关闭防火墙:systemctl stop firewalld.service

编辑 nexus 脚本, 配置 RUN_AS_USER 参数 

run_as_user='' 改为: RUN_AS_USER='root'

启动 nexus 

执行: cd nexus3.9.0/bin,进入到bin目录,执行:./nexus start

打开浏览器,访问:http://ip地址:8081/
默认用户名 admin 默认密码 admin123

到此,Nexus 安装完成。

接下来配置Nexus

配置Nexus之前,需要先了解一下私服的工作原理,如下图:

找依赖包的流程: 首先在本地仓库中找,如果没命中,那么就找远程私服;远程私服的查找规则同样是先找host属性的私有库,然后再去找proxy属性的远程仓库;可以配置多个proxy;

Nexus仓库类型介绍

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

  • hosted(宿主仓库库) :存放本公司开发的jar包(正式版本、测试版本)
  • proxy(代理仓库):代理中央仓库、Apache下测试版本的jar包
  • group(组仓库):使用时连接组仓库,包含Hosted(宿主仓库)和Proxy(代理仓库)

Hosted 仓库常用类型说明:

  • releases  内部的模块中 release 模块的发布仓库
  • snapshots 发布内部的 SNAPSHOT 模块的仓库
  • 3rd party 第三方依赖的仓库,这个数据通常是由内部人员自行下载之后发布上去 

新建代理maven仓库地址是阿里云  

jcenter http://jcenter.bintray.com/

最后建立组仓库maven-public(添加aliyun_maven到maven-public),如下。

组仓库中包含了aliyun_maven、maven-central、本地maven-releases,本地maven-snapshots。

 至此,Nexus基本就这么配置好了,主要在Group组中配置一个代理私服。

配置下载依赖 setting.xml

添加maven仓库镜像

创建好组仓库之后,修改setting.xml文件,添加maven仓库镜像,如下:

进入/usr/local/java/maven3.6.3/conf下修改setting.xml:

<mirror>
  <id>nexus-myself</id>
  <!--*指的是访问任何仓库都使用我们的私服-->
  <mirrorOf>*</mirrorOf>
  <name>Nexus myself</name>
  <url>http://192.168.200.16:8081/repository/maven-public/</url>
</mirror>

全局配置下载依赖(即项目pom无需配置)

在maven的setting.xml文件中配置私服配置,这种方式配置后所有本地使用该配置的maven项目的pom文件都无需配置私服下载相关配置。

<profiles>
  <profile>
     <id>mycof</id>
        <repositories>
        <!-- 私有库地址-->
          <repository>
          <id>nexus</id>
          <url>http://192.168.200.16:8081/repository/maven-public/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
        </repository>
      </repositories>      
      <pluginRepositories>
        <!--插件库地址-->
        <pluginRepository>
          <id>nexus</id>
          <url>http://192.168.200.16:8081/repository/maven-public/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>true</enabled>
           </snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile> 
 </profiles>

激活使用上面的配置

<!--激活profile-->
<activeProfiles>
  <activeProfile>mycof</activeProfile>
</activeProfiles>

本地maven开发的项目上传配置

1.maven的setting文件配置
这里要配置配置上传用户及仓库信息,我这里直接使用了admin用户,在nenus2.x中还内置了一个deployment/deployment123用户,在3.x该用户被移除了,这里可以自己配置角色和用户,我就直接使用admin用户了

<servers>
    <server>  
        <id>maven-releases</id>  
        <username>admin</username>  
        <password>admin123</password>  
    </server>  
    <server>  
        <id>maven-snapshots</id>  
        <username>admin</username>  
        <password>admin123</password>  
    </server>
  </servers>

单独项目下载依赖(即项目pom文件中配置)

这种配置是修改单个项目的pom文件,无需修改maven的setting配置

<repositories>
        <repository>
            <id>nexus</id>
            <url>http://192.168.200.16:8081/repository/maven-public/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>
    <distributionManagement>
        <repository>
            <id>maven-releases</id>
            <name>Nexus Release Repository</name>
            <url>http://192.168.200.16:8081/repository/maven-releases/</url>
        </repository>
        <snapshotRepository>
            <id>maven-snapshots</id>
            <name>Nexus Snapshot Repository</name>
            <url>http://192.168.200.16:8081/repository/maven-snapshots/</url>
        </snapshotRepository>
  </distributionManagement>

建议使用全局的setting配置,一个项目组共用一个maven的setting配置,项目中就无需配置下载相关的私服仓库配置

上传jar包配置(已在上述配置中设置)

对于中央仓库没有的jar包,需要我们自己将jar包发布到私服中去,其中jar包主要分为两类,
一类是本地自己开发供给项目组其余同事使用,这种直接配置项目的pom文件和maven的setting文件,之后deploy发布即可发布到;
另一类是第三方jar包,可以直接使用web页面上传并设置对应GAV即可;

出现uploading信息并且没报错说明上传成功。

在此过程中,不能使用maven的地址,连接超时,使用阿里云的即可

然后到对应的仓库中查看

注意:

  1. 这里只有Snapshot的仓库上传成功,Release仓库并没有上传成功,这是因为版本号名称结尾有SNAPSHOT,默认以这个结尾是不会上传到Release仓库去的,去除就会上传到Release仓库且不会上传到快照仓库

  2. Release仓库默认不支持重复发布,可配置

  3. 注意setting中server标签下的id要和pom文件中仓库配置的id相同,即指定上传到哪个仓库

第三方jar包上传

对于第三方jar包的上传采用nenus提供的web界面上传,上传成功后需要使用该jar包的话,依赖中填写自定义的GAV即可

发布了58 篇原创文章 · 获赞 206 · 访问量 32万+

猜你喜欢

转载自blog.csdn.net/weixin_39816740/article/details/104877891