Maven私服(Nexus)部署
来源:互联网 发布:软件与服务系统管理 编辑:程序博客网 时间:2024/06/06 09:20
一. 概述
Nexus是一个maven私服,主要解决的问题有:
1. 由于国内的网络环境比较恶劣,从maven中央仓库下载依赖库比较慢,因此架设nexus私服从内网获取,大大提高下载速度。
2. 多个不同的项目存在多个相同的依赖,若每个项目都独自通过中央仓库或其他maven仓库中获取依赖,占用网络资源且效率低下,使用nexus私服仅在依赖库第一次获取时需要从中央仓库或其他maven仓库中获取,之后便可从内网获取。
3. 一些依赖库中央仓库没有,通常的做法是在项目的pom.xml文件中指定仓库的位置去获取依赖库,不太方便。在nexus私服上可以配置该仓库的代理,对项目来说是透明的,在项目的pom.xml中只需要指定私服仓库的位置即可。
4. 内部的一些公共包可以上传到nexus私服,供其他项目使用。
二. 环境
操作系统:windows7 x86-64
Java版本:jdk8+
IP: 10.10.10.131
端口: 8081
三. 安装
下载地址:http://www.sonatype.org/nexus/go
159专网下载
wget https://sonatype-download.global.ssl.fastly.net/nexus/oss/nexus-2.14.5-02-bundle.zip
解压后进入D:\nexus\nexus-2.14.5-02\bin\jsw,根据操作系统类型选择windows-x86-64文件夹,进入后可看到如下所示bat文件。
双击console-nexus.bat运行。游览器中输入http://127.0.0.1:8081/nexus/,出现下图所示就代表nexus已经启动成功。
8081为默认的端口号,要修改端口号可进入nexus-2.14.5-02\conf\打开nexus.properties文件,修改application-port属性值就可以了。
默认的用户名和密码:admin/admin123(密码改成admin123$),登录后看到下所示:
四. 配置
4.1 maven项目索引
下载Maven项目索引,项目索引是为了使用者能够在私服站点查找依赖使用的功能
保存后后台会运行一个任务,点击菜单栏的Scheduled Tasks选项即可看到有个任务在RUNNING。下载完成后,Maven索引就可以使用了,在搜索栏输入要搜索的项,就可以查到相关的信息。例如hadoop
4.2 创建Proxy代理仓库
选择类型:maven2(proxy):
http://maven.aliyun.com/nexus/content/groups/public/
http://maven.oschina.net/content/groups/public/
https://repo1.maven.org/maven2/
https://repository.apache.org/content/repositories/releases/
https://repository.apache.org/content/repositories/snapshots
https://repo.spring.io/libs-release
https://repository.cloudera.com/artifactory/cloudera-repos/
4.3创建两个本地仓库
分别为release和snapshots,选择类型:maven2(hosted)。
4.4 创建一个仓库组
选择类型:maven2(group),将上述代理仓库全部添加到此仓库组。
五、使用私服
5.1项目发布
5.1.1手工发布
案例:发布一个jar包到3rd party宿主库中
选中宿主库——3rd party,之后选择ArtifactUpload上传至宿主空间。
最后点击上传
5.1.2通过配置发布
5.1.2.1 Pom.xml配置
首先在本项目pom.xml中添加
<distributionManagement>
<repository>
<id>user-release</id>
<name>User Project Release</name>
<url>http://106.6.10.131:8081/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>user-snapshots</id>
<name>User Project SNAPSHOTS</name>
<url>http://106.6.10.131:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
5.1.2.2 settings.xml设置发布权限
5.1.2.3 运行发布
5.1.2.4 私服验证
然后进入到私服上的仓库中,看一下确实存在刚刚发布的项目
5.2 项目下载
5.2.1局部配置
5.2.1.1 Pom.xml配置
即只在本项目的pom.xml中配置,仅对本项目生效。
<!-- 指定仓库 -->
<repositories>
<repository>
<id>nexus</id>
<name>nexus</name>
<url>http://106.6.10.131:8081/nexus/content/groups/MyRepositories/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<!--指定插件仓库 -->
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<name>nexus</name>
<url>http://106.6.10.131:8081/nexus/content/groups/MyRepositories/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
<!--指定要下载的依赖包 -->
<dependencies>
<dependency>
<groupId>test</groupId>
<artifactId>test</artifactId>
<version>0.1</version>
</dependency>
<dependency>
<groupId>com.test</groupId>
<artifactId>jfxswt</artifactId>
<version>0.1</version>
</dependency>
</dependencies>
5.2.1.2 验证
5.2.2全局配置
5.2.2.1 settings.xml配置
修改settings.xml,对所有配置生效
maven提供了profile来配置仓库信息,如下所示:
<profiles>
<profile>
<id>myprofile</id>
<repositories>
<repository>
<id>central</id>
<url>http://106.6.10.131:8081/nexus/content/groups/MyRepositories/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://106.6.10.131:8081/nexus/content/groups/MyRepositories/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
激活profile
<activeProfiles>
<activeProfile>myprofile</activeProfile>
</activeProfiles>
Settings.xml配置镜像
<mirror>
<id>nexus</id>
<url>http://106.6.10.131:8081/nexus/content/groups/MyRepositories/</url>
<mirrorOf>*</mirrorOf>
</mirror>
这里配置mirrorOf的值为*,代表maven的所有访问请求都会指向到Nexus仓库组。
5.2.2.2 验证
- Maven私服(Nexus)部署
- tomcat中部署maven私服-Nexus
- nexus管理maven部署
- Nexus搭建Maven私服(五) Maven远程部署web工程
- Maven 部署构件至Nexus
- maven nexus 和 热部署
- maven私服(nexus)搭建
- Maven学习(三):maven私服nexus
- 项目开发环境搭建手记(4.Maven私服Nexus安装及自动部署到Tomcat)
- 项目开发环境搭建手记(4.Maven私服Nexus安装及自动部署到Tomcat)
- 项目开发环境搭建手记(4.Maven私服Nexus安装及自动部署到Tomcat)
- maven 中 部署构件至Nexus(mvn deploy)
- maven(14)------maven构件部署到Nexus
- 部署nexus私服
- 部署nexus私服
- MAVEN的部署到NEXUS 400错误
- eclipse maven部署构件至Nexus
- maven项目部署到Repository(Nexus)
- HTTP协议详解
- SQLite 字段类型
- 九大排序算法详解
- 牛顿法与拟牛顿法学习笔记(三)DFP 算法
- Hibernate配置文件之主配置文件
- Maven私服(Nexus)部署
- 记一次Android系统下解决音频UnderRun问题的过程
- Android Drawable设计圆角
- 动态input type="radio"选中,而不是赋值
- 10.13
- CopyOnWriteArrayList与Collections.synchronizedList的性能对比
- Unity Shaderlab: Object Outlines
- WebView 使用漏洞
- Linux常用超强命令组合