Maven 私服(Nexus) 使用指南

96
步闲
2018.12.12 18:02 字数 633
1. Nexus 简介

Nexus是Maven仓库管理器,也可以叫Maven的私服。Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。利用Nexus你可以只在一个地方就能够完全控制访问和部署在你所维护仓库中的每个Artifact。Nexus是一套“开箱即用”的系统不需要数据库,它使用文件系统加Lucene来组织数据。
Nexus不是Maven的核心概念,它仅仅是一种衍生出来的特殊的Maven仓库。对于Maven来说,仓库只有两种:本地仓库和远程仓库。

本地仓库就是我们在maven的setting.xml中配置的本地仓库地址。由于最原始的本地仓库是空的,Maven必须知道至少一个可用的远程仓库,才能在执行Maven命令的时候下载到需要的构件。
中央仓库是maven默认的远程仓库。
私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件。有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库;否则,私服请求外部的远程仓库,将构件下载到私服,再提供给本地仓库下载。

1.1 优点
  • 节省外网带宽
  • 加速Maven构建
  • 较小的内存占用
  • 友好界面
  • 还有好多,不想写了。。。
2. 安装Nexus

Nexus专业版是需要付费的,我们使用的开源版Nexus OSS。Nexus提供了两种安装方式,一种是内嵌Jetty的bundle,只要你有JRE就能直接运行。第二种方式是不包含容器的WAR包,你只须简单的将其发布到web容器中即可使用。

下载地址: https://help.sonatype.com/repomanager2/download/download-archives---repository-manager-2

2.1 Bundle方式安装

2.2 WAR 方式安装

  • 需要单独容器。
3. 项目发布到私服Nexus
# 配置私服用户名密码 settings.xml
    <server>
      <id>releases</id>
      <username>admin</username>
      <password>admin123</password>
    </server>
<!--项目发布到私服-->
    <distributionManagement>
        <repository>
            <id>releases</id>
            <name>releases</name>
            <url>http://maven.xcar.com.cn/nexus/content/repositories/releases/</url>
        </repository>
    </distributionManagement>
4. 同时将源码放入私服配置
<build>
        <plugins>
            <!--   要将源码放上去,需要加入这个插件    -->
            <plugin>
                <artifactId>maven-source-plugin</artifactId>
                <version>2.1</version>
                <configuration>
                    <attach>true</attach>
                </configuration>
                <executions>
                    <execution>
                        <phase>compile</phase>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

5. 配置仓库,从私服拉项目
<!--配置仓库,从私服拉项目-->
    <repositories>
        <repository>
            <id>public</id>
            <name>Public Repositories</name>
            <url>http://maven.xcar.com.cn/nexus/content/groups/public/</url>
        </repository>
    </repositories>
6. 其他
# 修改maven仓库路径
<localRepository>D:\software\Maven\repo</localRepository>
参考链接

https://www.jianshu.com/p/44686d4ac2f2

Maven 工作笔记
Gupao