无网络环境下内网maven私服搭建


1.搭建Maven私服背景

公司还是按捺不住,要搭建一个自己的Maven本地仓库,可以让开发人员down架包,从内网还是快很多。

这样公司的maven本地仓库就是 开发人员自己电脑上的maven仓库  和    Maven远程仓库  之间的一个缓冲仓库。

 

那要构建一个maven私服,需要用到Maven仓库管理软件,关于Apache Archiva,Artifactory,Sonatype Nexus的区别,有下面这些的参考对比:

http://blog.sina.com.cn/s/blog_72ef7bea0102vq0k.html

http://www.sonatype.org/nexus/2015/02/23/migrating-from-artifactory-archiva-or-a-raw-maven-repository-to-sonatype-nexus/

 

 

2.安装Nexus,并初次启动Nexus

这里我们下载开源版 Nexus OSS。Nexus 提供两种安装包,一种是包含 Jetty 容器的 bundle 包,另一种是不包含容器的 war 包。下载地址:http://www.sonatype.org/nexus/go

这里先以windows上为例【Linux上之后再来一份】

 

在你点击下载之后,会有Read THE BOOK 的入口和加入NENUX社区的入口。

这里直接给你ReadTheBook的地址:https://help.sonatype.com/display/NXRM3

这里你可以找到官方提供的完整安装和使用教程。【因为这里使用的是Nexus3的版本,和参考文章中不大一致】

 

下载的压缩包解压下来

 

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

确认之后,下面会打印出来启动的相关信息,接下来,耐心等待它启动完成。

直到出现下面这个,才算启动完成。

 

 

初次启动之后,你可以在浏览器上访问nexus这个maven管理器

地址:http://localhost:8081/

当然,你可以使用默认的用户登录。

用户名:admin

密码:admin123

 

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

 

 

 3.将nexus配置为系统服务

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

第一:上面的安装和启动过程并没有默认的把nexus作为服务加入系统服务中;

第二:这样下次服务器重启,服务也会重启。

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

 

 

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

最后的<optional-service-name>,咱们直接命名成nexus就好。【当然,最后这个不指定的话,默认就是创建成nexus服务名】

在windows7上安装nexus为系统服务时,报错:could not open SCManager 

但是报错如下:

 

解决方法:

 

然后再次运行

如果再解决不了,那就在

直接以管理员身份运行这个命令提示符,然后安装服务。

 

显示安装成功之后,可以进入控制面板---》管理工具---》服务  

查找名为nexus的服务

 

你可以选择,点击上面的启动按钮启动服务,也可以用下面的命令启动服务

【当然,可以在上面配置启动参数,这个之后再去查看配置】

 

 

启动完成之后,试着访问一下http://localhost:8081/

 

因为上面服务是自动的。

重启电脑之后,再次访问,可以访问到,完美。

 

 

4.配置nexus和熟悉它

第一步,跟随着说明文档,看看下载nexus下来之后,有两个目录

nexus-3.5.2-01    安装目录

bin    包含nexus的启动脚本和相关配置      

etc    jetty、karaf等配置文件

jre    jre环境

lib    java架包库

public  关于nexus应用在本地跑起来所需要的资源

system  应用所有的插件和组件

LICENSE.txt 和 NOTICE.txt    版权声明和法律细则

 

sonatype-work\nexus3    数据文档

blobs/      创建blob的默认路径,如果你指定了绝对路径,那就不在这里了

cache/      当前缓存的karaf包的信息

db/        OrientDB数据库的数据,用于存储nexus的元数据的数据库

elasticsearch /    当前配置的Elasticsearch状态

etc/          大概是运行时配置状态和关于资源库的自定义的相关的东西

health-check/      看目录,健康检查的相关报告的存储目录吧

keystores/        自动生成的关于资源库的ID主键

log/            运行实例生成的日志文件,也有日志文件的压缩包,貌似是每天都会生成日志文件,你可以定期删除老的日志文件

tmp/            用于存储临时文件的目录

 

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

 

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

 

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

 

 

5.搭建maven私服资源库

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

第一步:首先http://localhost:8081/

登录上nexus,未登录的状态下是这样的。

使用默认用户名admin密码admin123登录后,如下

 

第二步:使用nexus3要搭建maven私服的核心功能

在nexus安装并启动之后,我大概的把整个nexus的官方说明文档走了一遍,主要就是介绍了左侧菜单中的各个功能模块。https://help.sonatype.com/display/NXRM3/Configuration

有兴趣去看看,还是很有帮助的。

====================================================================================================================

-------------------------------------------------------------------------------------普及-----------------------------------------------------------------------------------------------------------------

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

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

根据多方的文档和别人的博客,再综合官网的解释,我就这样理解得出:

资源库也就是这么三种,如上图中  【代理资源库】【托管资源库】【组资源库】,其实名字就是我自己瞎起的。

具体解释一下:

【代理资源库】:就是配置了外网的maven远程仓库地址的资源库,本地找不到,就会通过代理资源库中的地址,找到远程仓库,从远程仓库中下载所需要的jar。

【托管资源库】:就是放在本地的资源库,零零散散的jar,从远程仓库中下不到,只能自己在网上找,找到jar下载下来,放在托管资源库中,交给nexus统一管理。不然哪天想去用连接数据库的jar包,还得自己翻磁盘,多麻烦。

【组资源库】 :从上面①+②看出来,其实组资源库中并没有jar包,而是把代理资源库和托管资源库统一配置到组资源库中,然后组资源库作为一个唯一的public提供给所有人使用。就像工人1+工人2把自己的账单统一给包工头,让包工头去跟老板结账是一个道理。

 

好,明确了这一点,开始往下看吧。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

如果你想直入主题,往下看。

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

 由下面新建的完成的,可以看出,

 

 

②第二步,创建Proxy Repository  代理资源库

创建页面出来之后,页面上有三个input框是必填的:

 远程Maven地址:https://repo1.maven.org/maven2/

 

其他的不用更改了。保存就好了。

文章来源: 使用Nexus3搭建Maven私服+上传第三方jar包到本地maven仓库

1、在搭建过程中,要记得新建repository是要根据nexus规则分别新建proxy,hosted,group三个Browse,并将proxy和hosted加入到group

2、安装完成后在有网的情况下测试是否安装成功,将setting文件的下载地址改为私服地址后,可以看到我们新建的repository中没有jar的,然后在删除项目已经down好的jar,然后在执行mvn install,刚才删除的jar又重新down回来后,在去看私服上新建的仓库,会发现该库中已经有了你项目中的所有jar包纪委安装成功,可以移植到内网开发环境。至于内网中初始仓库的jar包和后面项目所需的新jar包,我们还是采取了最原始的方法,拷到setting指向的本地仓库(.m2),然后在项目中执行mvn install,即可上传到私服。其他开发人员就可以直接引用了(此方法为个人愚见,欢迎有更优秀想法指导赐教)。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM