Nexus 安装和配置

      • 官网:http://www.sonatype.org/nexus/
      • 官网下载:
      • 此时(20160207) Nexus 最新版本为:2.12.0-01
      • JDK 要求是 JDK 7,官网要求 7u6 或之后版本,包括 JDK 8
      • 官网帮助说明 1:http://books.sonatype.com/nexus-book/2.11/reference/install.html
      • 官网帮助说明 2:
      • 我个人习惯 目录下创建一个目录 setups 用来存放各种软件安装包;在 /usr 目录下创建一个 program 用来存放各种解压后的软件包,下面的讲解也都是基于此习惯
      • 我个人已经使用了第三方源:EPEL、RepoForge,如果你出现 yum install XXXXX 安装不成功的话,很有可能就是你没有相关源,请查看我对源设置的文章
      • 压缩包下载(由于国内网络的原因不排除你下载不了):wget http://download.sonatype.com/nexus/oss/nexus-2.12.0-01-bundle.tar.gz
        • 解压压缩包:tar zxvf nexus-2.11.4-01-bundle.tar.gz
          • 解压出来有两个文件夹:
          • 这是程序目录:nexus-2.11.4-01
          • 这是仓库目录:sonatype-work
        • 移到目录到我的安装目录下:mv nexus-2.11.4-01/ /usr/program/
        • 进入安装目录:cd /usr/program/
        • 把目录名字改为更好看点:mv nexus-2.11.4-01/ nexus2.11.4/
        • 编辑系统配置文件:vim /etc/profile
        • 由于目录 sonatype-work 以后是做仓库用的,会存储很多 jar,所以这个目录一定要放在磁盘空间大的区内,目前我们还没第一次启动 Nexus,所以这里还是空文件
          • 我个人习惯把这类目录放在 /opt 下,所以你要特别注意,下面有内容对这个文件夹进行操作的都是基于 opt 目录的:mv /opt/setup/sonatype-work/ /opt/
          • 设置配置文件:vim /usr/program/nexus2.11.4/conf/nexus.properties
            • 把文件中该值:nexus-work=${bundleBasedir}/../sonatype-work/nexus
            • 改为:nexus-work=/opt/sonatype-work/nexus
        • 默认情况下如果你的 JDK 等系统变量设置好的是无需编辑 Nexus 的配置文件,但是这里还是给大家一下配置文件路径:vim /usr/program/nexus2.11.4/bin/jsw/conf/wrapper.conf
        • 开放防火墙端口:
          • 添加规则:sudo iptables -I INPUT -p tcp -m tcp --dport 8081 -j ACCEPT
          • 保存规则:sudo /etc/rc.d/init.d/iptables save
          • 重启 iptables:sudo service iptables restart
      • 测试安装结果:
        • 启动 Nexus:/usr/program/nexus2.11.4/bin/nexus start
        • 查看启动日志:tail -200f /usr/program/nexus2.11.4/logs/wrapper.log
        • 关闭 Nexus:/usr/program/nexus2.11.4/bin/nexus stop
        • 访问:http://192.168.0.110:8081/nexus
        • 登录账号密码:
          • 账号密码:admin
          • 密码:admin123

    Nexus 配置

    • 修改默认端口:vim /usr/program/nexus2.11.4/conf/nexus.properties,修改该值:application-port=8081
    • 下载远程中央库的索引到服务器
      • 如上图标注 4 所示,把默认是 False 改为 True
      • Nexus 配置
      • 如上图 gif 所示,创建任务开始进行索引下载。需要特别提醒的是,如果你的私服是虚拟机,那得保证你分配的硬盘足够大,别像我一样吝啬只给 10 G(现在还剩下 1.9 G),结果报:设备上没有空间
    • 项目上配置链接连接私服(下面内容涉及到 maven 的基础知识,请自行私下学习):
      • 对项目独立设置:
        • 打开项目的 pom.xml 文件:
        • 添加下面内容:
          1. <repositories>
          2. <repository>
          3. <id>Nexus</id>
          4. <name>虚拟机-192.168.0.110-Nexus</name>
          5. <url>http://192.168.0.110:8081/nexus/content/groups/public/</url>
          6. </repository>
          7. </repositories>
      • 对全局配置进行设置:
        • 打开 maven 的 settings.xml 文件:
        • 添加下面内容:
    • 系统下的 settings.xml 下改为如下:
    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
    3. xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
    4. <localRepository>D:\maven\my_local_repository</localRepository>
    5. <pluginGroups>
    6. </pluginGroups>
    7. <proxies>
    8. </proxies>
    9. <!--设置 Nexus 认证信息-->
    10. <server>
    11. <id>nexus-releases</id>
    12. <username>admin</username>
    13. <password>admin123</password>
    14. </server>
    15. <server>
    16. <id>nexus-snapshots</id>
    17. <username>admin</username>
    18. <password>admin123</password>
    19. </server>
    20. </servers>
    21. <!--设置 Nexus 镜像,后面只要本地没对应的以来,则到 Nexus 去找-->
    22. <mirrors>
    23. <mirror>
    24. <id>nexus-releases</id>
    25. <mirrorOf>*</mirrorOf>
    26. <url>http://192.168.1.73:8081/repository/maven-releases/</url>
    27. </mirror>
    28. <mirror>
    29. <id>nexus-snapshots</id>
    30. <mirrorOf>*</mirrorOf>
    31. <url>http://192.168.1.73:8081/repository/maven-snapshots/</url>
    32. </mirror>
    33. <mirror>
    34. <id>aliyun-maven</id>
    35. <name>aliyun maven</name>
    36. <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    37. <mirrorOf>central</mirrorOf>
    38. </mirror>
    39. </mirrors>
    40. <profiles>
    41. <profile>
    42. <id>nexus</id>
    43. <repositories>
    44. <repository>
    45. <id>nexus-releases</id>
    46. <url>http://nexus-releases</url>
    47. <releases>
    48. <enabled>true</enabled>
    49. </releases>
    50. <snapshots>
    51. <enabled>true</enabled>
    52. </snapshots>
    53. </repository>
    54. <repository>
    55. <id>nexus-snapshots</id>
    56. <url>http://nexus-snapshots</url>
    57. <releases>
    58. <enabled>true</enabled>
    59. </releases>
    60. <snapshots>
    61. </repository>
    62. </repositories>
    63. <pluginRepositories>
    64. <pluginRepository>
    65. <id>nexus-releases</id>
    66. <url>http://nexus-releases</url>
    67. <releases>
    68. <enabled>true</enabled>
    69. </releases>
    70. <snapshots>
    71. <enabled>true</enabled>
    72. </snapshots>
    73. </pluginRepository>
    74. <pluginRepository>
    75. <id>nexus-snapshots</id>
    76. <url>http://nexus-snapshots</url>
    77. <releases>
    78. <enabled>true</enabled>
    79. </releases>
    80. <snapshots>
    81. <enabled>true</enabled>
    82. </snapshots>
    83. </pluginRepository>
    84. </pluginRepositories>
    85. </profile>
    86. </profiles>
    87. <activeProfiles>
    88. <activeProfile>nexus</activeProfile>
    89. </activeProfiles>
    90. </settings>
    • 在开发的项目 pom.xml 上,添加这一段:
    • 然后在项目上执行:mvn deploy

    持续集成自动构建后发布到 Nexus 上

    • 在 Maven 的 settings.xml 加上连接服务器信息:
    1. <!--设置私库认证信息,用户名和密码我就用默认的,如果你们有权限控制的需求可以创建对应的一些账号-->
    2. <servers>
    3. <server>
    4. <id>nexus-releases</id>
    5. <username>admin</username>
    6. <password>admin123</password>
    7. </server>
    8. <server>
    9. <id>nexus-snapshots</id>
    10. <username>admin</username>
    11. <password>admin123</password>
    12. </server>
    13. </servers>
    • 在项目的 pom.xml 文件加上:
    • 手动更新索引
      • 关闭 Nexus:/usr/program/nexus2.11.4/bin/nexus stop
      • 命令:cd /opt/sonatype-work/nexus/indexer/central-ctx
        • 删除里面默认的文件:rm -rf *
      • 访问官网索引:
        • 下载文件:nexus-maven-repository-index.gzwget http://repo.maven.apache.org/maven2/.index/nexus-maven-repository-index.gz
        • 下载文件:nexus-maven-repository-index.propertieswget http://repo.maven.apache.org/maven2/.index/nexus-maven-repository-index.properties
        • 下载索引解压工具:wget https://repo1.maven.org/maven2/org/apache/maven/indexer/indexer-cli/5.1.1/indexer-cli-5.1.1.jar
        • 执行解压命令(该命令执行需要4分钟左右):java -jar indexer-cli-5.1.0.jar -u nexus-maven-repository-index.gz -d ./
        • 删除解压前文件:
        • 重启服务:/usr/program/nexus2.11.4/bin/nexus start

    资料