前言:因为公司项目出现了些许未开源的maven依赖,为了方便开发,减少带宽,于是搭建一个公司的私服,供各位同一屋檐下的道友使用。
这是上一篇maven项目中手动构建未开源jar包解决方案:https://blog.youkuaiyun.com/MaoObject/article/details/104559631
1 前提系统中已经完成安装jdk,maven,步骤可以各位童鞋自行Baidu,这里就不详细介绍了。
检验jdk 及 maven 是否安装成功可以使用 javc,mvn-version 检验。
2 下载最新版 Nexus,首先我们新建目录
# mkdir nexus
解压导入的压缩包
解压后的文件格式
进入nexus-3.13.0-01/etc 找到 nexus.vmptions 更改端口(默认是8081,如有冲突需要更改)
更改为9081
去系统环境中增加配置 vim /etc/profile
export RUN_AS_USER=root
source /etc/profile 刷新配置
启动失败!排查原因
一般我们都是用 ./nexus start 来启动 但是看不到启动日志 我们换为 ./nexus run
报错日志
网上各种资料查找,除了去环境变量中配置
export RUN_AS_USER=root 之外,还有一个重要的配置更改
输入 vim nexus
把原来的true,改为false(重点!!!)
然后 启动成功
然而,继续让我失望,继续报错,
查阅资料得知:
nexus的tar包解压时会产生两个目录,nexus-3.13.0-01和sonatype-work两个目录,删除sonatype-work下的nexus3目录或者重命名,然后再启动nexus
访问
成功访问
登录nexus,默认密码就是 admin admin123
创建 repository
默认仓库介绍
1 maven-central: maven中央库,默认从 https://repo1.maven.org/maven2/ 拉取jar
2 maven-releases: 私库发行版jar
3 maven-snapshots:私库快照(调试版本)jar
4 maven-public: 仓库分组,把上面三个仓库组合在一起对外提供服务,在本地maven基础配置settings.xml中使用。
Nexus默认的仓库类型有以下四种:(上面的名字可以随便取,关键是它对应的是什么仓库类型)
1 group(仓库组类型):又叫组仓库,用于方便开发人员自己设定的仓库;
2 hosted(宿主类型):内部项目的发布仓库(内部开发人员,发布上去存放的仓库);
3 proxy(代理类型): 从远程中央仓库中寻找数据的仓库(可以点击对应的仓库的Configuration页签下Remote Storage Location属性的值即被代理的远程仓库的路径);
4 virtual(虚拟类型): 虚拟仓库(这个基本用不到,重点关注上面三个仓库的使用);
Policy(策略):表示该仓库为发布(Release)版本仓库还是快照(Snapshot)版本仓库;
2、仓库拉取jar包流程
1 Maven可直接从宿主仓库下载构件,也可以从代理仓库下载构件,而代理仓库间接的从远程仓库下载并缓存构件
2 为了方便,Maven可以从仓库组下载构件,而仓库组并没有时间的内容(下图中用虚线表示,它会转向包含的宿主仓库或者代理仓库获得实际构件的内容).
首先创建 proxy
我们这里使用阿里云的镜像地址:http://maven.aliyun.com/nexus/content/groups/public
在创建 hosted (注意hosted需要创建两个,模式分别为:Release,Snapshot)
创建第一种模式
创建第二种模式
最后再来创建 仓库组 group
创建的主宿仓库,然后一个仓库组
这时我们的工作创建仓库和组工作就算完成了
接下来开始配置我们的项目
图中的地址可以客户端进行copy
接下来配置我们的maven下的setting.xml
可能很多伙伴比较迷惑,为什么要引入 Getoff-group的路径,下面我来解释一下,因为我们构建了三个仓库,一个仓库组,我们在配置的时候,是把这三个仓库有引入了一个仓库组下面,访问仓库组就可以获取 任何一个仓库里面的依赖。
Getoff-group 在settting.xml 配置仓库组
<mirrors>
<mirror>
<id>Getoff-group</id>
<name>Getoff-group</name>
<url>http://120.0.0:9081/repository/Getoff-group/</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
然后去启动我们的项目,就是上传我们的自己本地的jar包至 刚刚搭建的仓库
构建成功,然后我们去仓库里 一睹为真
成功!!!
本人是一枚java开发,公司缺少运维的岗位,然后就自己想研究一下,有不足的地方,希望各位大佬指正,一起进步。
以上就是本人搭建的全部步骤,中间有入坑的情况,各位童鞋一定要仔细,不要气馁。
希望我们在前进的道路上互帮互助。