我是靠谱客的博主 畅快耳机,最近开发中收集的这篇文章主要介绍Maven(二)、Maven私服介绍与搭建,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

高级用法

    • 1. Nexus介绍
    • 2. 私服搭建应用
      • 2.1 下载
      • 2.2 安装
      • 2.3 Nexus仓库介绍
      • 2.4 自定义仓库类型
    • 3. Nexus的应用
      • 3.1 通过私服来下载对应的依赖
      • 3.2 上传Jar到私服
      • 3.3 特定jar包上
      • 3.4 从私服上下载jar包

仓库管理器也叫 私服代理仓库

仓库管理器有两个服务目的:首先它的角色是一个高度可配置的介于你的组织与公开Maven仓库之间的代理,其次它为你的组织提供了一个可部署你组织内部生成的构件的地方。

1. Nexus介绍

Nexus是一个强大的Maven仓库管理器, 它极大地简化了自己内部仓库的维护和外部仓库的访问。 利用Nexus你可以只在一个地方就能够完全控制访问和部署在你所维护仓库中的每个Artifact。Nexus是一套“开箱即用”的系统不需要数据库,它使用文件系统加Lucene来组织数据。 Nexus使用ExtJS来开发界面,利用Restlet来提供完整的REST APIs,通过m2eclipse与Eclipse集成使用。 Nexus支持WebDAV 与LDAP安全身份认证。

2. 私服搭建应用

2.1 下载

下载地址: https://www.sonatype.com/download-oss-sonatype

2.2 安装

  • 解压到非中文路径下。
  • 在cmd下切换到bin目录,然后执行 nexus install 命令,注意打开cmd命令窗口的时候最好通过管理员身份打开,否则有可能出现拒绝访问的情况
  • 启动nexus服务:nexus start 命令即可
  • 测试访问,访问地址:http://localhost:8081/nexus 默认的账号:admin 密码:admin123
    在这里插入图片描述

2.3 Nexus仓库介绍

在这里插入图片描述
类型介绍

名称说明
group仓库组,包含宿主仓库和代理仓库
hosted代表宿主仓库,存放本公司开发jar包,以及一些第三方不允许的组件,比如oracle驱动、比如商业软件jar包
proxy代表代理远程的仓库,最典型的就是Maven官方中央仓库、JBoss仓库等等
virtual虚拟库

默认仓库介绍

仓库名称描述
PublicRepositories 仓库组
3rd party无法从公共仓库获得的第三方发布版本的构件仓库
Apache Snapshots用了代理ApacheMaven仓库快照版本的构件仓库
Central用来代理maven中央仓库中发布版本构件的仓库
Central M1 shadow用于提供中央仓库中M1格式的发布版本的构件镜像仓库
Codehaus Snapshots用来代理CodehausMaven 仓库的快照版本构件的仓库
Releases用来部署管理内部的发布版本构件的宿主类型仓库
Snapshots用来部署管理内部的快照版本构件的宿主类型仓库

2.4 自定义仓库类型

  1. 自定义宿主仓库
    新建公司的内部仓库:
    步骤为Repositories –> Add –> Hosted Repository,在页面的下半部分输入框中填入Repository ID和Repository Name即可,比如分别填入myId 和 myRepostiory,另外把Deployment Policy设置为Allow Redeploy,点击save就创建完成了。
    在这里插入图片描述
    设置宿主仓库的相关信息
    在这里插入图片描述

  2. 自定义代理仓库
    虽然搭建了私服,但是如果私服中没有我们需要的jar包,它还是会去中央仓库去下载,这是速度同样很慢,这时我们可以在nexus中添加阿里的代理服务器。步骤如下:
    在这里插入图片描述
    远程地址是: http://maven.aliyun.com/nexus/content/groups/public/
    可以将我们自定义的仓库类型添加对默认的仓库组中
    在这里插入图片描述

  3. 自定义仓库组Group
    创建步骤和上面的差不多,注意是定义下组中包含的repository就可以了
    在这里插入图片描述

3. Nexus的应用

3.1 通过私服来下载对应的依赖

在setting.xml文件中配置相关信息
配置认证信息,注意要配置在 servers 标签以内

<server>
	<id>nexus</id>
	<username>admin</username>
	<password>admin123</password>
</server>

然后再配置nexus中的 仓库组 地址信息

<mirror>
	<id>Public</id>
	<name>Public Repositories</name> 
	<url>http://localhost:8081/nexus/content/groups/public/</url> 
	<mirrorOf>*</mirrorOf>
</mirror>

配置好后我们就可以直接在IDEA中来使用了。

3.2 上传Jar到私服

当我们开发的公共模块,开发完成后,我们需要将这些jar通过maven来管理。那么我们可以将jar上传到nexus服务中,供其他小伙伴公司内部共享。

修改setting.xml配置文件

<server>
	<id>releases</id>
	<username>admin</username>
	<password>admin123</password>
	</server>
<server>
	<id>snapshots</id>
	<username>admin</username>
	<password>admin123</password>
</server>

修改pom文件,在build 同级标签下添加如下标签

<!-- 配置上传私服路径 --> 
<distributionManagement>
	<repository>
		<id>releases</id> 
		<url>http://localhost:8081/nexus/content/repositories/releases/</url>
	</repository>
	<snapshotRepository>
		<id>snapshots</id> 
		<url>http://localhost:8081/nexus/content/repositories/snapshots/</url>
	</snapshotRepository>
</distributionManagement>

执行部署操作 deploy
在这里插入图片描述

3.3 特定jar包上

典型就是oracle的jdbc驱动包,这个在maven中央仓库中是不存在。
在这里插入图片描述

3.4 从私服上下载jar包

1.修改setting文件
设置模板

<profile>
	<id>dev</id>
	<repositories>
		<repository>
			<id>nexus</id> 
			<url>http://localhost:8081/nexus/content/groups/public/</url>
			<!--是否下载releases构件 -->
			<releases>
				<enabled>true</enabled>
			</releases>
			<!--是否下载snapshots构件 -->
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		</repository>
	</repositories>
	
	<pluginRepositories>
		<pluginRepository>
			<id>public</id>
			<name>Public_Repositories</name> 
			<url>http://localhost:8081/nexus/content/groups/public/</url> 
		</pluginRepository>
	</pluginRepositories>
</profile>

激活模板

<activeProfiles>
	<activeProfile>dev</activeProfile>
</activeProfiles>

最后

以上就是畅快耳机为你收集整理的Maven(二)、Maven私服介绍与搭建的全部内容,希望文章能够帮你解决Maven(二)、Maven私服介绍与搭建所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部