Ubuntu下 Maven 私服(Nexus) 安装配置

好了,新建一个 Maven 项目测试一下吧,看看jar包是不是从你指定的私服地址下载的。

OK,重启你的 Ubuntu 试试吧!

然后,在我们要发布的项目所在 POM 文件中<project>标签下加入如下配置:

切记<server>标签 id 要和<distributionManagement>标签中的<repository>标签 id 要一致。

mvn deploy 命令就发布到仓库了!!!

OK,伺服搭建、配置,以及本地 Maven 如何使用私服,基本介绍完毕。若有疑问或不对之处,欢迎联系我指正!

  • 安装环境

    Ubuntu 14.04.3 LTS 64 位

  • Nexus 安装

    首先下载 Nexus 的 Linux 安装包,官方地址:http://www.sonatype.org/nexus/go/,如果不能打开或无法下载,可以通过我的网盘分享下载:http://pan.baidu.com/s/1sjmpxsp

    下载完成后,把你的 jdk 安装包上传到 Ubuntu 中 /usr/local/src 目录下,Nexus 是依赖 java jdk 的,如果已经安装好了 jdk,如下命令开始进行安装。(jdk 怎么安装?戳我!

    • cd /usr/local/src
      tar –zvxf nexus-latest-bundle.tar.gz
      mv sonatype-work ../
      mv nexus-2.11.2-06 ../
      cd ../nexus-2.11.2-06/bin
      ./nexus start

      nexus 启动失败,错误信息如下:

    • If you insist running as root, then set the environment variable RUN_AS_USER=root before running this script.

      意思是说如果你想运行这个脚本,必须先设置环境变量RUN_AS_USER=root,那么我们来加入这个环境变量

    • vi /etc/profile
      # 末尾重起一行加入
      export RUN_AS_USER=root
      # 退出保存
      source /etc/profile # 让环境变量立即生效

      重新执行./nexus start。正常启动了,如果还报错,注意阅读异常信息,耐心 Google Baidu。

      我们可以通过网页访问 http://server_ip:8081/nexus,来查看服务是否安装成功! 登陆的用户名和密码是:admin/amdin123




      •  
      •  
  • 配置 Maven 使用私服下载 jar 包

    通常我们本地配置好 Maven 以后,Maven 默认从http://repo.maven.apache.org/maven2下载jar包,我们如果需要指定 Maven 从自己的伺服下载 jar 包,需要修改 MAVEN_HOME/conf/settings.xml文件(MAVEN_HOME是你 Maven的安装目录),找到 <mirros>标签,在其中加入如下内容:

    • <mirror>
        <id>myNexus</id>
        <mirrorOf>*</mirrorOf>
        <name>My Nexus Mirror</name>
        <url>http://192.168.0.147:8081/nexus/content/groups/public</url>
        <releases>  
          <enabled>true</enabled>
        </releases>  
        <snapshots>  
          <enabled>true</enabled>  
        </snapshots>
      </mirror>
  • mirrorOf
    * = everything
    external:* = everything not on the localhost and not file based.
    repo,repo1 = repo or repo1
    *,!repo1 = everything except repo1

  • 从私服下载 snapshots 版本的 jar 包

    进行了如上配置后,默认就从私服下载 jar 包了,但是无法从私服下载到 snapshots 版本的 jar 包和插件。若想下载 snapshots版本需要进行如下配置,找到修改 MAVEN_HOME/conf/settings.xml文件中<profiles>标签,在其中加入如下内容:

    • <!-- 通过上面的mirror配置,项目已经能从伺服下载jar包和插件,但不能下载snapshots版本的jar,通过以下配置开启 -->
      <profile>
          <!-- 从指定伺服下载jar包,此处开启了snapshots版本的jar包下载 -->
          <id>use-local-nexus</id>
          <repositories>
              <repository>
                  <id>nexus</id>
                  <name>local private nexus</name>
                  <url>http://192.168.0.147:8081/nexus/content/groups/public/</url>
                  <releases>  
                      <enabled>true</enabled>
                  </releases>  
                  <snapshots>  
                      <enabled>true</enabled>  
                  </snapshots>  
              </repository>
          </repositories>
          <!-- 指定插件也从伺服下载 -->
          <pluginRepositories>
              <pluginRepository>
                  <id>nexus</id>
                  <name>local private nexus</name>
                  <url>http://192.168.0.147:8081/nexus/content/groups/public/</url>
                  <releases>
                      <enabled>true</enabled>
                  </releases>
                  <snapshots>
                      <enabled>false</enabled>
                  </snapshots>
              </pluginRepository>
          </pluginRepositories>
      </profile>
  • Maven私服开机启动设置

    • vi /usr/local/nexus-2.11.2-06/bin/nexus
      # 修改一下两项
      NEXUS_HOME="/usr/local/nexus-2.11.2-06"
      RUN_AS_USER=root
      # 保存退出
    • vi /etc/rc.local
      # 在 exit0 之前加入下面一行
      /usr/local/nexus-2.11.2-06/bin/nexus start
  • 私服讲解

    Maven 安装完成以后,一般我们会对其进行一些配置,使其更易于使用。

    登陆后点击左侧导航的 Repositories ,看到如下图

    100334_DKrR_2374253.jpg

    注意 Type 这一列,Maven 仓库一共有 4 中类型:group,hosted,proxy,virtual。

    • hosted 本地仓库,通常我们会部署自己的构件到这一类型的仓库。如图,安装好私服后,会默认有三个 hosted 类型的仓库,名字分别是 3rd party,Releases,Snapshots。

      • 3rd party 是用来上传一些公共库中没有的jar包,如 Oracle数据库驱动,MySQL数据库驱动。我们将驱动上传到 3rd party 这个仓库以后,项目就能直接通过私服下载数据库驱动了。

      • Releases 我们将自己开发的jar包发布到仓库,如果jar包是 Releases 版本的,jar包会被发布到这个仓库

      • Snapshots,同 Releases 一样,如果我们的 jar 包是 Snapshots版本的,jar包会被发布到这个仓库

         

    • proxy 代理仓库,安装好私服后,会默认有一个名为 Central 的仓库,它是一个代理仓库。也就是说,假如你请求私服下载 jar 包,但是私服中没有此 jar 包,那么私服会通过代理仓库来下载你请求的 jar 包。你可以配置多个代理仓库,配置完代理仓库后,记得将代理仓库加入Public Repositories组。另外记得将代理仓库的 Download Remote Indexes 选项设置为 true 。这里说几个常用的代理仓库地址:

      • https://repository.apache.org/snapshots/

      • http://repo1.maven.org/maven2/ (Central 库的地址就是这个)

      • https://nexus.codehaus.org/snapshots/

      • http://maven.oschina.net/content/groups/public/ (开源中国的Maven仓库)

      • http://repository.sonatype.org/content/groups/forge/

    • group,仓库组。仓库组中可以加入多个hosted/proxy类型的仓库。它相当于hosted/proxy类型的仓库集合,所以我们配置 Maven 从私服下载 jar 包时,一般把 Maven 私服地址指向这个仓库组,而不指向具体某个 hosted/proxy类型的仓库。

    • 上面说的上传 jar 包到 hosted 类型仓库,添加一个 proxy 代理仓库,以及在group中加入多个 hosted/proxy类型的仓库,你可以参考这篇文章http://aijezdm915.iteye.com/blog/1335025


  • 发布自己的 jar 包到私服

    首先,MAVEN_HOME/conf/settings.xml文件中<servers>标签下加入如下配置:

    • <server>  
      	<id>nexus-releases</id>  
      	<username>admin</username>  
      	<password>admin123</password>  
      </server>  
      <server>  
      	<id>nexus-snapshots</id>  
      	<username>admin</username>  
      	<password>admin123</password>  
      </server>
    • <distributionManagement>
      	<repository>
      		<id>nexus-releases</id>
      		<name>Nexus Release Repository</name>
      		<url>http://192.168.0.147:8081/nexus/content/repositories/releases/</url>
      	</repository>
      	<snapshotRepository>
      		<id>nexus-snapshots</id>
      		<name>Nexus Snapshot Repository</name>
      		<url>http://192.168.0.147:8081/nexus/content/repositories/snapshots/</url>
      	</snapshotRepository>
      </distributionManagement>

其它需要注意的问题及推荐

  1. 尽量不要配置mirrorOf为*, 会导致pom文件中的repository不生效
  2. 私服的配置推荐用profile配置而不是mirror(毕竟mirror是镜像,私服其实是n个镜像及自己的开发库等的合集)
     
        <profile>
          <id>nexus</id>
          <repositories>
            <repository>
              <id>nexus</id>
              <url>http://192.168.163.xx:xx/nexus/content/groups/public/</url>
              <releases>
                <enabled>true</enabled>
              </releases>
              <snapshots>
                <enabled>true</enabled>
              </snapshots>
            </repository>
          </repositories>
          <pluginRepositories>
            <pluginRepository>
              <id>nexus</id>
              <url>http://192.168.163.xx:xx/nexus/content/groups/public/</url>
              <releases>
                <enabled>true</enabled>
              </releases>
              <snapshots>
                <enabled>true</enabled>
              </snapshots>
            </pluginRepository>
          </pluginRepositories>
        </profile>
      </profiles>
      <activeProfiles>
        <activeProfile>nexus</activeProfile>
      </activeProfiles>

     

 

转载于:https://my.oschina.net/ironwill/blog/521225

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值