CentOS 安装nexus私服

系统CentOS 6.x:

  • 从官网下载最新开源版的压缩包,比如我这里是nexus-2.12.1-01-bundle.tar.gz,保存在 /usr/local/ 目录下
  • 解压,并且制作软链接:
    1
    2
    3
    wget https://sonatype-download.global.ssl.fastly.net/nexus/oss/nexus-2.12.1-01-bundle.tar.gz
    tar zxvf nexus-2.12.1-01-bundle.tar.gz
    ln -s /usr/local/nexus-2.12.1-01 /usr/local/nexus
  • nexus内置以Jetty启动,默认端口为8081,如果冲突了要修改端口,编辑 conf/nexus.properties 文件,找到 application-port=8081 这一行,改为 application-port=9037

  • 因为我是以root身份操作系统的,故要修改 bin/nexus 文件,找到 #RUN_AS_USER= 这一行,在下面添加 RUN_AS_USER=root

  • 修改 bin/jsw/conf/wrapper.conf 文件,改变java命令路径,找到 wrapper.java.command=java 这一行,改为 wrapper.java.command=/usr/local/jdk/bin/java(具体跟你自己的jdk位置有关)(PS:系统配置了java环境变量可以不用修改此项)。
  • 制作服务。直接通过软链接即可:

    1
    ln -s /usr/local/nexus/bin/nexus /etc/init.d/nexus
  • 至此,nexus做成服务并开机启动就大功告成了。

启动nexus私服

1
2
3
4
# 启动
./nexus-2.12.1-01/bin/nexus start
# 查看状态
./nexus-2.12.1-01/bin/nexus status

本地项目配置引用私服

  • 在项目的 pom.xml 中配置私库地址,pom.xml 的下面添加:
    1
    2
    3
    4
    5
    6
    7
    8
    <!-- 私有仓库 -->
    <repositories>
    <repository>
    <id>public</id> <!--这个ID需要与你的组group ID一致-->
    <name>Public Repository</name>
    <url>http://192.168.19.130:8081/nexus/content/groups/public</url>
    </repository>
    </repositories>

打包发布

  • 在项目的 pom.xml 中配置私库地址,pom.xml 的下面添加:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <!-- 打包发布 -->
    <distributionManagement>
    <repository>
    <id>releases</id><!--这个ID需要与你的release仓库的Repository ID一致-->
    <url>http://192.168.19.130:8081/nexus/content/repositories/releases</url>
    </repository>
    <snapshotRepository>
    <id>snapshots</id><!--这个ID需要与你的snapshots仓库的Repository ID一致-->
    <url>http://192.168.19.130:8081/nexus/content/repositories/snapshots</url>
    </snapshotRepository>
    </distributionManagement>
  • 在 maven 的 settings.xml 中配置 server 账户信息:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <servers>
    <server>
    <id>releases</id>
    <username>deployment</username>
    <password>dev123</password><!--这个密码就是你设置的密码-->
    </server>
    <server>
    <id>snapshots</id>
    <username>deployment</username>
    <password>dev123</password><!--这个密码就是你设置的密码-->
    </server>
    </servers>
  • 配置完成后使用 bash mvn deploy 即可发布到nexus私服中。

需要说明一点:

当pom.xml中同时配置了releases仓库和snapshots仓库时。
pom.xml文件开头的版本配置1.0.0-SNAPSHOT为build到snapshots库,
pom.xml文件开头的版本配置1.0.0 (不带-SNAPSHOT) 的会build到releases库,
如果只配置了releases库而版本号写的是带-SNAPSHOT的,build到最后一步会报400错误,因为它找不到对应的库。