1、仓库定义
用来存储所有maven共享构建的位置
2、仓库布局
根据maven坐标定义每个构建在仓库中的存储路径,大致为:groupId/artifactId/versionId/artifactId-version.packaging
3、仓库分类
1)、本地仓库
位置:~/.m2/resposity(一个用户只有一个本地仓库)
2)、远程仓库
中央仓库:Maven默认的远程仓库(http://repo1.maven.org/maven2)
私服:特殊的远程仓库,架设在局域网内
镜像:代替中央仓库,速度一般比中央仓库快
4、私服
Nexus架构:
Nexus 安装
1)、从http://nexus.sonatype.org/downloads 下载nexus(注:nexus是典型的javaWeb应用,分两种安装包,一种是包含Jetty容器的Budle包,另一种是不包含Web容器的war包。此处以Bundle为例进行讲解)
2)、解压Budle包,建立软连接(方便nexus升级)
$ sudo cp nexus-latest-bundle.tar.gz /usr/local
$ cd /usr/local
$ sudo tar -zxvf nexus-latest-bundle.tar.gz
$ sudo ln -s nexus-2.8.1-01/ nexus
注:解压完之后会得到两个子目录,nexus-2.8.1-01 和 sonatype-work,前者包含Nexus运行所需要的文件,如启动脚本、依赖jar包等,后者包含Nexus生成的配置文件、日志文件、仓库文件等。第一个目录是运行所必须的,而且所有相同版本所包含的该目录是相同的,而第二个目录不是必须的,Nexus会在运行的时候动态创建该目录,不过他的内容对于各个Nexus实例是不一样的,因为不同用户在不同机器上使用的Nexus会有不同的配置和仓库内容,因此备份的时候仅备份该目录即可(它包含了用户的特定内容)
3)、配置环境变量NEXUS_HOME
4)、启动nexus
$ cd /usr/local/nexus
$ ./bin/nexus start
$ nexus start
注:启动时候若由于端口冲突造成失败,则可以到 /usr/local/nexus-2.8.1-01/conf/nexus.properties 文件中修改端口参数
安装完成之后,在浏览器中输入:http://localhost:8081/nexus ,若出现以下界面表示安装成功
配置构建从私服下载
打开./m2/setting.xml文件
找到mirrors,添加如果代码:
<mirror>
<!--此处配置所有的构建均从私有仓库中下载 *代表所有,也可以写central -->
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://192.168.1.100:8000/nexus/content/groups/public</url>
</mirror>
找到profiles,添加如下代码:
<profile>
<id>nexus</id>
<!—所有请求均通过镜像 -->
<repositories>
<repository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
activeProfiles,添加如下代码激活profile
<activeProfile>nexus</activeProfile>
部署构建到Nexus
在项目的pom.xml中配置
<distributionManagement>
<repository>
<id>releases</id>
<name>Internal Releases</name>
<url>http://localhost:8000/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<name>Internal Snapshots</name>
<url>http://localhost:8000/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
并在~/.m2/setting文件中找到servers,添加:
<!-- 设置发布时的用户名 -->
<servers>
<server>
<id> releases </id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id> snapshots </id>
<username>admin</username>
<password>admin123</password>
</server>
servers>