zoukankan      html  css  js  c++  java
  • Linux 使用nexus搭建maven私服

    一、准备工作

         系统:LINUX
              JDK:已安装(未安装详见jdk安装教程:http://www.cnblogs.com/muzi1994/p/5818099.html)
              Maven:已安装(未安装详见maven安装教程:http://www.cnblogs.com/muzi1994/p/6030181.html)
              Nexus:http://www.sonatype.org/nexus/go
                         所有版本下载地址:http://www.sonatype.org/nexus/archived/
              Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。

    二、安装Nexus

      1.解压nexus文件

    1
    [root@centos6 var]# tar -zvxf nexus-2.12.0-01-bundle.tar.gz

      

          注:解压后有两个文件夹:

                      nexus-2.12.0-01: 是nexus的核心文件

                      sonatype-work :maven下载jar存放地址

      2.启动Nexus

    1
    2
    3
    4
    5
    6
    [root@centos6 nexus-2.12.0-01]# ./bin/nexus start
     
    - ****************************************
    WARNING - NOT RECOMMENDED TO RUN AS ROOT
    ****************************************
    If you insist running as root, then set the environment variable RUN_AS_USER=root before running this script.

      默认情况下,不建议以root用户运行Nexus,可以修改bin/nexus中的配置跳过警告(修改RUN_AS_USER=root)

    1
    [root@centos6 nexus-2.12.0-01]# vi bin/nexus

      

         重新启动Nexus

    1
    2
    3
    4
    5
    6
    7
    [root@centos6 nexus-2.12.0-01]# ./bin/nexus start
     
    - ****************************************
    WARNING - NOT RECOMMENDED TO RUN AS ROOT
    ****************************************
    Starting Nexus OSS...
    Started Nexus OSS.

      注:Nexus默认端口8081,如果想修改端口。修改/conf/nexus.properties文件

          

          访问网址:http://192.168.1.11:8081/nexus/#welcome

          

          点击右上角的 Log In 按钮即可登陆了。默认登录账号/密码为: admin/admin123 ,登陆成功后的界面

          

      点击Repositories,将列表中所有Type为proxy 的项目的 Configuration 中的 Download Remote Indexes 设置为True

          

         将Releases仓库的Deployment Policy设置为 Allow ReDeploy

          

          当然我们也避免不了会使用到一些第三方的 jar ,而这些jar包也不存在于互联网上的maven中央仓库中,这时我们可以手工添加jar 到我们的私服中。
          添加第三方 jar 如下:
          

          填写完必选字段,点击Upload Artifact(s)按钮即可。

      3.配置本地项目引用私服

       自动发布构件到远程仓库,在工程pom.xml中添加

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <distributionManagement>
        <repository>
            <id>releases</id><!--这个ID需要与你的release仓库的Repository ID一致-->
            <url>http://192.168.1.11:8081/nexus/content/repositories/releases</url>
        </repository>
        <snapshotRepository>
            <id>snapshots</id><!--这个ID需要与你的snapshots仓库的Repository ID一致-->
            <url>http://192.168.1.11:8081/nexus/content/repositories/snapshots</url>
        </snapshotRepository>
    </distributionManagement>

      修改本地$MAVEN_HOMEconf目录下的settings.xml配置文件,添加如下配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <servers>
        <server>
            <id>releases</id>
            <username>admin</username>
            <password>admin123</password>
        </server>
        <server>
            <id>snapshots</id>
            <username>admin</username>
            <password>admin123</password>
        </server>
    </servers>

      在本地工程目录下执行:

    1
    mvn deploy

      所部署的包就自动上传到了nexus安装目录下的

          

      4.配置Maven从Nexus下载构件

        在POM中配置Nexus私服,这样的配置只对当前的Maven项目有效。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    <!--指定Nexus的构件仓库-->
    <repositories>
        <repository>
            <id>public</id>
            <name>Team Maven Repository</name>
            <url>http://192.168.1.11:8081/nexus/content/groups/public/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>
     
    <!--指定Nexus的插件仓库-->
    <pluginRepositories>
        <pluginRepository>
            <id>public</id>
            <name>Team Maven Repository</name>
            <url>http://192.168.1.11:8081/nexus/content/groups/public/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>

      在settings.xml中配置profile元素,这样就能让本机所有的Maven项目都使用自己的Maven私服。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <properties>
            <repository>
                <id>public</id>
                <name>Team Maven Repository</name>
                <url>http://192.168.1.11:8081/nexus/content/groups/public/</url>
                <releases>
                    <enabled>true</enabled>
                </releases>
                <layout>default</layout>
                <snapshots>
                    <enabled>true</enabled>
                </snapshots>
            </repository><br></properties>
  • 相关阅读:
    js正则
    【zookeeper】zookeeper 集群搭建
    【zookeeper】linux zookeeper的安装步骤
    【ActiveMQ】ActiveMQ之JDBC消息存储安装配置
    【数据库】Cannot create PoolableConnectionFactory (null, message from server: "Host 'xxxxx' isnot allow
    【ActiveMQ】Failed to bind to server socket: nio://0.0.0.0:61616 due to: java.net.BindException:
    【微服务】Springboot和ActiveMQ整合出现 Could not resolve placeholder 'xxx' in value "${xxx}"
    【ActiveMQ】记录一次activemq与jdk版本冲突问题
    【ActiveMq】linux ActiveMq安装
    【springcloud】Could not resolve type alias 'Dept'. Cause: java.lang.ClassNotFoundException
  • 原文地址:https://www.cnblogs.com/justuntil/p/10054487.html
Copyright © 2011-2022 走看看