Linux下安装maven私服(nexus3)

一、所需软件

jdk8,nexus3

Nexus下载地址:https://www.sonatype.com/download-nexus-repo-oss

 

二、安装过程

1、将软件上传至/usr/local并解压

2、安装jdk和maven

(1)解压完毕

(2)配置/etc/profile文件并刷新配置

(3)执行source /etc/profile刷新配置

(4)执行java –version和mvn –version查看,如果查看到版本信息则证明成功。

3、到正题了,安装nexus

(1)私服介绍:私服是指私有服务器,是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构建。有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库;否则,私服请求外部的远程仓库,将构件下载到私服,再提供给本地仓库下载。

http://images2015.cnblogs.com/blog/907596/201612/907596-20161220162726057-620806393.png

 

好处:
1)加速构建;
2)节省带宽;
3)节省中央maven仓库的带宽;
4)稳定(应付一旦中央服务器出问题的情况);
5)控制和审计;
6)能够部署第三方构件;
7)可以建立本地内部仓库;
8)可以建立公共仓库

 

(2)nexus结构

解压后由两部分组成,其中nexus-3.17.0-01包括了私服的应用配置和程序,sonatype-work用来存储数据

1)其中端口修改在/nexus-3.17.0-01/etc/nexus-default.properties的

       application-port参数,默认为8081,改为8082

2)/nexus-3.17.0-01/bin/nexus.vmoptions有各种参数修改,比如数据存放地址,        虚拟机参数配置等。默认将数据放在sonatype-work/nexus3

3)/nexus-3.17.0-01/bin/nexus的信息基本不用改

 

(3)安装启动

1)运行。进入bin目录,运行./nexus.start,启动服务

2)输入ip:port进入系统,用户名为admin,初始密码为在

/sonatype-work//nexus3/admin.password目录下。输入用户名密码后进入系统并修改密码为Abcd1234 。

3)设置开机自启

  1. sudo ln -s /cpic/nexus/nexus-3.17.0/bin/nexus /etc/init.d/nexus
  2. 查看nexus服务状态、启动服务、停止服务等
service nexus status/start/stop
  1. 设置nexus服务开机自启动或者开机不启动
chkconfig nexus on/off

4)maven配置阿里云中央镜像

镜像是对repository而言,必须先存在repository,之后配置对应关系。
如果配置mirror ,则找mirror ,不再找对应的repository。所以mirror >= repository

 

找到mirrors标签,添加

<mirror>
     <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>        
</mirror>

5)nexus私服构成介绍

登录后找到Repositories,打开,如下图

  1. component name的一些说明: 
    1
    maven-centralmaven中央库,默认从https://repo1.maven.org/maven2/ 拉取jar 可以改为阿里云http://maven.aliyun.com/nexus/content/groups/public/ 
  2. 2maven-releases:私库发行版jar 
    3
    maven-snapshots:私库快照(调试版本)jar 
    4
    maven-public:仓库分组,把上面三个仓库组合在一起对外提供服务,在本地maven基础配置settings.xml中使用。
  3. Nexus默认的仓库类型有以下四种:
    1group(仓库组类型):又叫组仓库,用于方便开发人员自己设定的仓库。可包含hostedproxy两种库,下载时按配置顺序从中依次查找
    2hosted(宿主类型):内部项目的发布仓库(内部开发人员,发布上去存放的仓库)。一般部署我们自己项目打包的jar,供内部人员下载
    3proxy(代理类型):从远程中央仓库中寻找数据的仓库(可以点击对应的仓库的Configuration页签下Remote Storage Location属性的值即被代理的远程仓库的路径);
    4virtual(虚拟类型):虚拟仓库(这个基本用不到,重点关注上面三个仓库的使用);
  4. Policy(策略):表示该仓库为发布(Release)版本仓库还是快照(Snapshot)版本仓库;
  5. Public Repositories下的仓库 
    1
    3rd party: 无法从公共仓库获得的第三方发布版本的构件仓库,即第三方依赖的仓库,这个数据通常是由内部人员自行下载之后发布上去;
    2Apache Snapshots: 用了代理ApacheMaven仓库快照版本的构件仓库 
    3
    Central: 用来代理maven中央仓库中发布版本构件的仓库 
    4
    Central M1 shadow: 用于提供中央仓库中M1格式的发布版本的构件镜像仓库 
    5
    Codehaus Snapshots: 用来代理CodehausMaven 仓库的快照版本构件的仓库 
    6
    Releases: 内部的模块中release模块的发布仓库,用来部署管理内部的发布版本构件的宿主类型仓库;release是发布版本;
    7Snapshots:发布内部的SNAPSHOT模块的仓库,用来部署管理内部的快照版本构件的宿主类型仓库;snapshots是快照版本,也就是不稳定版本

6)功能测试

使用upload功能上传第三方文件到私库

7)配置本地maven连接私库

a.本地maven库配置settings.xml,添加mirror即可从过私服下载

1、在mirrors添加mirror。可以添加多个mirror。这里只添加私库

<mirrors>

    <mirror>

      <id>nexus</id>

      <mirrorOf>*</mirrorOf>

      <url>http://10.71.0.138:8082/repository/maven-public/</url>

    </mirror>

  </mirrors>

 

2、在profiles添加profile

<profiles>

   <profile>

      <id>nexus</id>

      <repositories>

        <repository>

          <id>central</id>

          <url>http://central</url>

          <releases><enabled>true</enabled></releases>

          <snapshots><enabled>true</enabled></snapshots>

        </repository>

      </repositories>

     <pluginRepositories>

        <pluginRepository>

          <id>central</id>

          <url>http://central</url>

          <releases><enabled>true</enabled></releases>

          <snapshots><enabled>true</enabled></snapshots>

        </pluginRepository>

      </pluginRepositories>

    </profile>

  </profiles>

 

3、在avtinveProfiles添加activeProfile表示激活nexus

<activeProfiles>

    <activeProfile>nexus</activeProfile>

</activeProfiles>

 

配置2和3的目的是为了可以下载releases库和snapshots库的jar包。

 

b.打包jar并传到私库

1、在servers添加server

  <servers>

    <server>

      <id>nexus-releases</id>

      <username>admin</username>

      <password>Abcd1234</password>

</server>

    <server>

       <id>nexus-snapshots</id>     

      <username>admin</username>

      <password>Abcd1234</password>

    </server>

  </servers>

 

2、在项目的pom文件添加如下代码,会将正式版发布到releases仓库,测试版发布到snapshots仓库。直接deploy即可发布到私服。注意:nexus-releases和nexus-snapshots为maven配置文件中配置的参数

<distributionManagement>
   <repository>
      <id>nexus-releases</id>
      <name>Nexus Releases Repository</name>
      <url>http://10.71.0.138:8082/repository/maven-releases/</url>
   </repository>
   <snapshotRepository>
      <id>nexus-snapshots</id>
      <name>Nexus Snapshots Repository</name>
      <url>http://10.71.0.138:8082/repository/maven-snapshots/</url>
   </snapshotRepository>
</distributionManagement>

 

踩坑点:

1、在Anonymous没勾选,表示不允许匿名访问,导致一直下载不了。

2、本地maven用的是3.3.1,不知道是不是缓存问题,一直下载不了,经历了更新maven版本和重启电脑后解决问题。就记一下吧,如果有类似问题的朋友可以尝试下。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章