首页 > 编程知识 正文

nexus搭建maven私服,nexus私服

时间:2023-05-05 09:28:28 阅读:214833 作者:1596

一、安装Nexus

这里我们下载开源版 Nexus OSS。下载地址:http://www.sonatype.org/nexus/go

1.1 下载选择

这里以windows上为例,选择 Windows

在你点击下载之后,会有 Read THE BOOK 的入口和加入 NENUX 社区的入口。你可以在其中,找到官方提供的完整安装和使用教程。【因为这里使用的是Nexus3的版本,和参考文章中不大一致】

1.2 解压压缩包

把下载的压缩包解压下来:

1.3 启动

启动cmd命令窗口,进入 nexus-3.5.2-01 目录下的 sxdmt 目录下,按照官方的启动方式,需要在 sxdmt 目录下使用 nexus /run 命令启动,如下图:

1.4 确认启动完成

确认之后,下面会打印出来启动的相关信息,接下来,耐心等待它启动完成。直到出现下面这个,才算启动完成:

1.5 开始体验Nexus

初次启动之后,你可以在浏览器上访问nexus这个maven管理器。地址:http://localhost:8081/

当然,你可以使用默认的用户登录。用户名:admin 密码:admin123

此时,观看命令窗口,会有记录相关的操作记录:

二、将nexus配置为系统服务

根据官方文档说明,将nexus配置为系统服务是一个很好的选择。因为:

上面的安装和启动过程并没有默认的把 nexus 作为服务加入系统服务中;这样下次服务器重启,服务也会重启。

但是有个前提,就是已经确保安装了Java运行时环境



接下来,我们重新打开一个窗口,去将nexus加入系统服务 :

<optional-service-name>的配置:直接命名成 nexus 就好。【当然不指定的话,默认就是创建成 nexus 服务名】

ps:如果在windows7上安装nexus为系统服务时,报错:could not open SCManager 。则需要 以管理员身份运行 cmd ,然后重新执行。

三、熟悉nexus结构 3.1 目录结构 根目录 nexus-3.5.2-01 安装目录sonatype-worknexus3 数据文档 nexus-3.5.2-01 目录 sxdmt 包含nexus的启动脚本和相关配置etc jetty、karaf等配置文件jre jre环境lib java架包库public 关于nexus应用在本地跑起来所需要的资源system 应用所有的插件和组件LICENSE.txt 和 NOTICE.txt 版权声明和法律细则 sonatype-worknexus3 目录 blobs/ 创建blob的默认路径,当然也可以重新指定cache/ 当前缓存的karaf包的信息db/ OrientDB数据库的数据,用于存储nexus的元数据的数据库elasticsearch/ 当前配置的Elasticsearch状态etc/ 大概是运行时配置状态和关于资源库的自定义的相关的东西health-check/ 看目录,健康检查的相关报告的存储目录吧keystores/ 自动生成的关于资源库的ID主键log/ 运行实例生成的日志文件,也有日志文件的压缩包,貌似是每天都会生成日志文件,你可以定期删除老的日志文件tmp/ 用于存储临时文件的目录

具体每个目录下的各个配置文件的作用,还可参考官方文档说明:https://help.sonatype.com/display/NXRM3/Installation

3.2 配置参数

如果你想配置 nexus 的应用在本地启动的 JVM参数,可以在 nexus.vmoptions:

如果你想改变 nexus 的 端口号,可以在 nexus-default.properties:

四、配置Nexus

由于现在使用的 nexus3,所以在 nexus 应用上资源库初始化目录和 nexus2 有很大的不同,但是类型都是一样的。

关于左侧菜单中的各个功能模块的介绍,详细参见:https://help.sonatype.com/display/NXRM3/Configuration

上面提到的一点,不管 nexus 版本是怎么样的,至少 repository 的类型是一样的。

先看一下大概的目录结构:

资源库也就是这么三种,如上图中。

关于上面几个仓库的具体介绍,前篇文章已经说到了,这里就不重提了。具体传送门:https://blog.csdn.net/localhost01/article/details/84346992

4.1 创建 Blob Strores

在创建 repository之前,还是需要先设定一个指定的文件存储目录,便于统一管理。在创建 repository之前,还是需要先设定一个指定的文件存储目录,便于统一管理。



前篇文章也提到,nexus3 使用了Blob Stores来保存仓库文件。因此创建仓库前,可以先创建 Blob Stores。当然你也可以不创建,那么将会使用默认的路径:./sonatype-work/nexus3/blobs

4.2 创建 Proxy Repository 代理仓库。


配置 Proxy Repository代理仓库。创建页面出来之后,页面上有三个框是必填的:


注意:可以多建几个proxy repository,以便于可以加入更多的远程maven仓库到我们的 group 仓库中。唯一一点,就是看加入的proxy资源库使用的是国内的还是国外的远程仓库。加入group资源库的顺序应是:hosted仓库 > 国内proxy仓库 > 国外proxy仓库。

这里推荐几个远程仓库

jboss的maven中央仓库地址:http://repository.jboss.com/maven2/阿里云的maven中央仓库地址:http://maven.aliyun.com/nexus/content/groups/public/apache的maven中央仓库地址:http://repo.maven.apache.org/maven2/ 4.3 创建 hosted repository 宿主仓库

Hosted有三种方式:Releases、Snapshot、Mixed

Releases: 一般是已经发布的Jar包Snapshot: 未发布的版本Mixed:混合的


4.4 创建 group repository 仓库组


为什么要注意顺序??

官方文档中建议:
It is recommended practice to place hosted repositories higher in the list than proxy repositories. For proxy repositories, the repository manager needs to check the remote repository which will incur more overhead than a hosted repository lookup.

希望将hosted repositories【宿主仓库】的顺序放在proxy repositories【代理仓库】之前,因为一个group【仓库组】中可以涵括这些宿主仓库和代理仓库。而一整个的group是作为一个public,一个接口给别人使用的。

所以当查找架包的时候,如果代理资源库在前面,那就是先从远程去查找jar,而不是先从宿主仓库(本地仓库)去查找是否有jar。

五、让 Maven 项目使用 Nexus 私服 5.1 下载Jar:设置 Nexus 为镜像地址

Maven 下的setting.xml文件和你自己项目中的pom.xml文件的关系:

settting.xml 文件就是本地电脑上的全局变量;而pom.xml文件就是局部变量。pom.xml文件对于项目来说,是优先使用的。然而pom.xml文件中如果没有指定jar要从哪里下载的话,也就是说没有配置镜像地址的话,当然只能去按照settting.xml 中定义的地址去找了

拷贝的这个地址,就是下面即将在setting.xml文件中添加时使用的:

setting.xml:

<!--自定义maven本地仓库地址--> <localRepository>D:appsrepository</localRepository> <!--nexus服务器--> <servers> <server> <id>nexus</id> <username>admin</username> <password>admin123</password> </server> </servers> <!--仓库组的url地址 id和name自定义,mirrorOf的值设置为central,写死的--> <mirrors> <mirror> <id>nexus</id> <name>nexus repository</name> <url>http://localhost:8081/repository/myself_group/</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors>

然后将IDEA或Eclipse的Maven->setting.xml 地址指向该 setting.xml 位置

5.2 部署上传Jar:配置distributionManagement

配置 distributionManagement 节点,执行 deploy 命令时,会将jar发布到指定地址。

注意:配置<version>20180929-SNAPSHOT</version>时,如果后面添加了SNAPSHOT,则会自动发布到指定的snapshots仓库,否则发布到releases仓库。

pom.xml

<project>...<distributionManagement> <repository> <id>nexus-releases</id> <name>Nexus Release Repository</name> <url>http://localhost:8081/nexus/content/repositories/releases/</url> </repository> <snapshotRepository> <id>nexus-snapshots</id> <name>Nexus Snapshot Repository</name> <url>http://localhost:8081/nexus/content/repositories/snapshots/</url> </snapshotRepository></distributionManagement>...</project>

settings.xml

<settings> ... <servers> <server> <id>nexus-releases</id> <username>admin</username> <password>admin123</password> </server> <server> <id>nexus-snapshots</id> <username>admin</username> <password>admin123</password> </server> </servers> ... </settings>

两个文件的 id 需要保持一致!

参考:

https://www.cnblogs.com/sxdcgaq8080/p/7583767.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。