Nexus私服搭建
关于作者
- 作者介绍
🍓 博客主页:作者主页
🍓 简介:JAVA领域优质创作者🥇、一名在校大三学生🎓、在校期间参加各种省赛、国赛,斩获一系列荣誉🏆
🍓 关注我:关注我学习资料、文档下载统统都有,每日定时更新文章,励志做一名JAVA资深程序猿👨💻
1、序言
Nexus可以做Maven私服,私服不是Maven的核心概念,它仅仅是一种衍生出来的特殊的Maven仓库。有三种专门的Maven仓库管理软件可以用来帮助大家建立私服:
Apache基金会的Archiva、JFrog的Artifacotory和Sonatype的Nexus,Archiva是开源的,Artifacotory和Nexus的核心也是开源的。
Nexus 是“开箱即用”的系统,不需要数据库,它使用文件系统加 Lucene 来组织数据,支持 WebDAV 与 LDAP 安全身份认证。Nexus 还提供了强大的仓库管理功能,构件搜索功能,它基于 REST,友好的 UI 是一个 extjs 的 REST 客户端,它占用较少的内存,基于简单文件系统而非数据库。Nexus 极大地简化了本地内部仓库的维护和外部仓库的访问。另外,Nexus 还可以在代理远程仓库的同时维护本地仓库,以降低中央仓库的负荷,节省外网带宽和时间。 本篇 Nexus 选择 3.x 版本的安装
2、私服是什么?
私服是指私有服务器,是假设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构建.有了私服之后,当maven需要下载构件时,直接请求私服,私服上存在则下载到本地仓库;否则,私服请求外部的远程仓库,将构件下载到私服,在提供给本地仓库下载.
👦👦👦肯定有小伙伴又要问了
3、Nexus是什么?
Nexus是一个强大的maven仓库管理器,它极大的简化了本地内部仓库的维护和外部仓库的访问
Nexus是一套开箱即用的系统不需要数据库,它使用文件系统加Lucene来组织数据
Nexus使用ExtJS来开发界面,利用Restlet来提供完整的REST APIs,通过IDEA和Eclipse集成使用
Nexus支持WebDAV与LDAP安全身份认证
Nexus提供了强大的仓库管理功能,构件搜索功能,它基于REST,友好的UI是一个extjs的REST客户端,占用较少的内存,基于简单文件系统而非数据库
4、为什么要构建Nexus私服?
- 内网访问,节省外网带宽。
- 一次外网下载,内网所有用户就可以只下载私服缓存,加速 Maven 项目构建。
- 允许上传和下载私有库,并且不被外部访问,更加安全。
- 减少外部网络因素,提供项目构建的稳定性。
- 方便内部项目服务的依赖引用,而不需要其他项目的完整源代码。
- 有利于公共构件的维护
- 提高工作效率
👨💻了解完这些基本的概念,我们要开始真正的实战技术了
5、Nexus下载
我们选择使用最流行的开源 Maven 仓库管理软件—Nexus,来快速搭建 Maven 私服
厂长为大家提供了两种下载方法:
Nexus的官网 www.sonatype.com/products/re…
百度网盘 链接:pan.baidu.com/s/1axGwnPzZ… 提取码:wpzr
CSDN资源下载
正在提交中······
6、使用Nexus搭建私服
1)免安装的,下载下来,解压直接运行即可。
2)配置下环境变量
这样做的目的是在全局的cmd窗口下都可以进行启动
3)运行
windows+R—》输入cmd—》nexus /run
出现这个框框,就表示启动成功了😃😃😃。
4)检验
在浏览器的地址栏输入:http://localhost:8081/ 访问
注意:可以修改默认端口 nexus\nexus-3.20.1-01\etc\nexus-default.properties
😎解决方案:登陆私服时密码不对的问题
旧版本 账号 admin 密码 admin123 新版本(推荐) 默认的UserName:admin 第一次登陆的时的密码是随机生成的在admin.password文件里面 复制密码登陆
登录后就会出现提示框修改密码,按照提示修改密码就可以使用自己设置的密码进行登录。
7、私服的使用
1)Repositories
- hosted:本地仓库(也叫宿主仓库),通常我们会部署自己的构件到这一类型的仓库或者是第三方的包(如:oracel的)。
- proxy:代理仓库,它们被用来代理远程的公共仓库,如maven中央仓库。
- group:仓库组,用来合并多个hosted/proxy仓库,通常我们配置maven依赖仓库组
- maven-central:maven中央库,默认从repo1.maven.org/maven2/拉取ja…
- maven-releases:私库发行版jar
- maven-snapshots:私库快照(调试版本)jar
- maven-public:仓库分组,把上面三个仓库组合在一起对外提供服务,在本地maven基础配置settings.xml中使用。
Hosted是宿主机的意思,有三种方式:Releases、Snapshot、Mixed
Releases: 一般是已经发布的Jar包 Snapshot: 未发布的版本 Mixed:混合的
proxy就是代理的意思,代理中央Maven仓库,当PC访问中央库的时候,先通过Proxy下载到Nexus仓库,然后再从Nexus仓库下载到PC本地。这样的优势只要其中一个人从中央库下来了,以后大家都是从Nexus私服上进行下来,私服一般部署在内网,这样大大节约的宽带。
Name:就是为代理起个名字 Remote Storage: 代理的地址,Maven的地址为: repo1.maven.org/maven2/ Blob Store: 选择代理下载包的存放路径
2)创建Proxy Repository代理仓库。
Nexus aliyun
http://maven.aliyun.com/nexus/content/groups/public
3)新建自定义的仓库
4)自定义组资源库
8、在Maven项目使用 Nexus 私服
1)创建角色
一个角色下有多个用户 ,有了角色才能分配给用户权限
2)创建用户
3)maven setting.xml文件配置
定义jar包下载的Maven仓库、定义部署服务器。 但是某些配置例如username和password就保存在构建服务器中的settings.xml中。
id:server 的id,用于匹配distributionManagement库id,比较重要。 username,password:用于登陆此服务器的用户名和密码 privateKey,passphrase:设置private key,以及passphrase filePermissions,directoryPermissions:当库文件或者目录创建后,需要使用权限进行访问。参照unix文件许可,如664和775 mirrors:表示镜像库,指定库的镜像,用于增加其他库。mirror相当于一个拦截器,它会拦截maven对remote repository的相关请求,把请求里的remote repository地址,重定向到mirror里配置的地址。 id,name:唯一的标志,用于区别镜像 url:镜像的url mirrorOf:此镜像指向的服务id
servers标签的配置
<servers>
<!-- server | Specifies the authentication information to use when connecting to a particular server, identified by | a unique name within the system (referred to by the 'id' attribute below). | | NOTE: You should either specify username/password OR privateKey/passphrase, since these pairings are | used together. | -->
<!--自定义maven本地仓库地址 注意斜杠是反的-->
<localRepository>E:/enviroment/repository</localRepository>
<server>
<id>release</id>
<username>admin</username>
<password>123456</password> <!-- 这里的密码是之前你修改的密码-->
</server>
<server>
<id>snapshots</id>
<username>admin</username>
<password>123456</password> <!-- 这里的密码是之前你修改的密码-->
</server>
</servers>
profiles标签的配置
<profiles>
<profile>
<id>default_profile</id>
<repositories>
<!--包含需要连接到远程仓库的信息 -->
<repository>
<!--远程仓库唯一标识 -->
<id>nexus</id>
<!--远程仓库名称 -->
<name>maven-public</name>
<!--如何处理远程仓库里发布版本的下载 -->
<releases>
<!--true或者false表示该仓库是否为下载某种类型构件(发布版,快照版)开启。 -->
<enabled>true</enabled>
<!--该元素指定更新发生的频率。Maven会比较本地POM和远程POM的时间戳。这里的选项是:always(一直),daily(默认,每日),interval:X(这里X是以分钟为单位的时间间隔),或者never(从不)。 -->
<updatePolicy>never</updatePolicy>
<!--当Maven验证构件校验文件失败时该怎么做-ignore(忽略),fail(失败),或者warn(警告)。 -->
<checksumPolicy>warn</checksumPolicy>
</releases>
<!--如何处理远程仓库里快照版本的下载。有了releases和snapshots这两组配置,POM就可以在每个单独的仓库中,为每种类型的构件采取不同的策略。例如,可能有人会决定只为开发目的开启对快照版本下载的支持。参见repositories/repository/releases元素 -->
<snapshots>
<!--true或者false表示该仓库是否为下载某种类型构件(发布版,快照版)开启。 -->
<enabled>true</enabled>
<!--该元素指定更新发生的频率。Maven会比较本地POM和远程POM的时间戳。这里的选项是:always(一直),daily(默认,每日),interval:X(这里X是以分钟为单位的时间间隔),或者never(从不)。 -->
<updatePolicy>always</updatePolicy>
<!--当Maven验证构件校验文件失败时该怎么做-ignore(忽略),fail(失败),或者warn(警告)。 -->
<checksumPolicy>warn</checksumPolicy>
</snapshots>
<!--远程仓库URL,按protocol://hostname/path形式 -->
<url>http://localhost:8081/repository/maven-public/</url>
<!--用于定位和排序构件的仓库布局类型-可以是default(默认)或者legacy(遗留)。Maven 2为其仓库提供了一个默认的布局;然而,Maven 1.x有一种不同的布局。我们可以使用该元素指定布局是default(默认)还是legacy(遗留)。 -->
<layout>default</layout>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>maven-net-cn</id>
<name>Maven China Mirror</name>
<url>http://localhost:8081/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
4)部署仓库的用POM中distributionManagement元素来定义的。
<distributionManagement>
<repository>
<id>maven-releases</id>
<name>Nexus Release Repository</name>
<url>http://localhost:8081/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>maven-snapshots</id>
<name>Nexus Snapshot Repository</name>
<url>http://localhost:8081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
接着执行部署命令 mvn clean deploy
到这里Nexus私服就配置好了!谢谢各位小伙伴的观看。
后语
厂长写博客目的初衷很简单,希望大家在学习的过程中少走弯路,多学一些东西,对自己有帮助的留下你的赞赞👍或者关注➕都是对我最大的支持,你的关注和点赞给厂长每天更文的动力。
对文章其中一部分不理解,都可以评论区回复我,我们来一起讨论,共同学习,一起进步!
微信(z613500)或者 qq(1016942589) 详细交流。
今天的文章企业级项目管理工具使用Maven之Nexus搭建私服分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/14128.html