使用nexus软件搭建本地MAVEN仓库

 

本地MAVEN仓库有多种方式,公司推荐使用专门软件NEXUS,个人可以使用诸如github,云存储空间。
使用NEXUS管理,首先需要下载软件地址为

 

https://www.sonatype.com/download-oss-sonatype,有对于不同操作系统的版本,我们选择下载nexus-3.1.0-04-win64版本。下载解压后(解压地址不要放在Program Files类似文件夹)

配置JAVA环境,设置环境变量
NSTALL4J_JAVA_HOME_OVERRIDE=D:\Program Files\Java;
测试运行 cd D:\nexus-3.1.0-04-win64\nexus-3.1.0-04\bin,运行nexus.exe /run >log.txt  重定向写入日志方便后续问题查看

看到java版本说明环境变量设置成功,这个主要是考虑多java版本情况下。启动过程出现了错误,提示端口占用,找到配置文件修改端口,先查看端口在CMD命令行 netstat –ano |findstr “8081”

再通过进程ID找到程序名称
Tasklist | finstr “2376”

因为这个进程是杀毒软件,所以通过修改本程序端口,如果有需要结束占用进程的,可命令tasklist /f /t /im *.exe
修改nexus-default.properties的application-port    
    启动成功界面

最后出现started ……
这个是命令行程序,窗口关了程序也就关了,可以把nexus服务端配置成服务,经过测试通过后,运行名 nexus.exe /install nexuservice,安装成功后有显示,如果没有信息可能是失败了,关闭CMD窗口,重新执行。
服务启动后,可以进入了,打开浏览器输入地址http://localhost:8089/,出现

默认账户和密码:admin,admin123
登陆Nexus,在左边菜单栏里选择Repositories,然后会出现右边的画面,右边上半部分是列出来的repository,黑体字是类型为group的repository。
 这里简单介绍下几种repository的类型:
    Ø hosted,本地仓库,通常我们会部署自己的构件到这一类型的仓库。比如公司的第二方库。
    Øproxy,代理仓库,它们被用来代理远程的公共仓库,如maven中央仓库。
    Øgroup,仓库组,用来合并多个hosted/proxy仓库,当你的项目希望在多个repository使用资源时就不需要多次引用了,只需要引用一个group即可。
我们前面讲到类型为hosted的为本地仓库,Nexus预定义了3个本地仓库,分别是Releases, Snapshots, 3rd Party. 分别讲一下这三个预置的仓库都是做什么用的:
  Releases:这里存放我们自己项目中发布的构建, 通常是Release版本的, 比如我们自己做了一个FTP Server的项目, 生成的构件为ftpserver.war, 我们就可以把这个构建发布到Nexus的Releases本地仓库. 关于符合发布后面会有介绍.
  Snapshots:这个仓库非常的有用, 它的目的是让我们可以发布那些非release版本, 非稳定版本, 比如我们在trunk下开发一个项目,在正式release之前你可能需要临时发布一个版本给你的同伴使用, 因为你的同伴正在依赖你的模块开发, 那么这个时候我们就可以发布Snapshot版本到这个仓库, 你的同伴就可以通过简单的命令来获取和使用这个临时版本.
现在开始创建MAVEN库,首先

创建好后,在maven-public group组里构造刚才的仓库

设置好之后,我们要设置客户端上传,在maven安装目录下找到setting.xml,把注释server节去掉
<server>
      <id>third-party</id>
      <privateKey>admin</privateKey>
      <passphrase>admin123</passphrase>
    </server>
除了用户认证,还可以设置私钥证书认证。
使用“mvn –encrypt-master-password xxx”或“mvn –emp xxx”创建一个主密钥,后面的xxx就是你所要设置的密钥的内容,这个密钥主要用于后面加密密码来用的;命令执行之后会产生一个类似 {jSMOWnoPFgsHVpMvz5VrIt5kRbzGpI8u+9EF1iFQyJQ=}形式的字符串。
在${user.home}/.m/目录下创建一个名为settings-security.xml文件,我们将刚刚产生的主密钥放到这个文件
<?xml version="1.0" encoding="UTF-8"?>
<settingsSecurity>
<master>{jSMOWnoPFgsHVpMvz5VrIt5kRbzGpI8u+9EF1iFQyJQ=}</master>
</settingsSecurity>
使用“mvn –encrypt-password xxx”或“mvn –ep xxx”命令对帐号的密码进行加密,后面的xxx就是帐号的密码,加密之后依然会产生一个“{xxx}”形式的字符串,将这个字符串替换上面 settings.xml文件中的server下面的password节点内容即可。
用maven上传jar命令如下
mvn -e deploy:deploy-file -DgroupId=com.oracle -DartifactId=JDBCDriver -Dversion=12.0.1 -Dpackaging=jar -Dfile=E:\Oracle.jar -Durl=http://localhost:8089/repository/third-party/ -DrepositoryId=third-party
其中发现该命令返回 认证失败,然后用命令mvn help:effective-settings显示XML生效内容,发现并没有server节点。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值