1、下载
访问官网:https://www.sonatype.com/
点击product->选择免费版OSS,如图:
点击如图按钮:
这里选择UNIX版本,如图,点击即可开始下载:
2、安装
- 解压
tar -zvxf nexus-3.13.0-01-unix.tar.gz
-
进入etc目录修改基本配置,一般是修改端口配置,这里采用默认8081
-
进入bin目录启动,注意此版本启动需要jdk1.8+
./nexus start
显示 Starting nexus即可
- 访问
浏览器输入:http://xx.xx.xx.xx:8081/ 即可,如果刚启动,暂时访问不了,稍等一会再进行访问,访问界面如图:
3、添加proxy仓库和hosted仓库
- 登录,默认用户名密码:admin\admin123
如需修改密码,点击如图进行操作即可:
- 如图所示,红线框中的仓库是本身就配置好的,他们的含义很简单,网上查询一下即可,需要留意的是maven-public,它关系着从列表中哪些仓库下载,以及先从哪个仓库下载的顺序:
- 新建3rdPart仓库,用来存储maven仓库无法下载到的资源,如连接oracle数据库所需jar包:
点击Create repository即可 - 连接中央仓库下载速度很慢,有时候甚至下载不下来,所以这里添加一个proxy类型的阿里云仓库,当需要下载时,先从阿里云进行下载,如图:
阿里云仓库地址:http://maven.aliyun.com/nexus/content/groups/public/
配置红线框中的两项即可,其他默认,点击最下面Create repository即可
- 还有重要的一步,需要将添加的仓库添加进maven-public,并调整下载顺序,否则是不会先从添加的仓库中尝试下载
通过框线中按钮,进行添加并调整顺序,如图:
4、实现项目发布到私服对应仓库
- 首先需要配置setting文件
找到用户目录下.m2文件夹(注意配置maven根目录下的setting.xml文件是全局配置,会影响所有用户的使用,我们一般配置某用户的setting.xml即可),修改setting.xml,如果没有从maven中复制过来一个,添加一下内容:
<server>
<id>nexus-releases</id>
<username>admin</username>
<password>xxxx</password>
</server>
<server>
<id>nexus-snapshots</id>
<username>admin</username>
<password>xxxx</password>
</server>
id随意,用户名密码是以私服的用户名密码
2. pom.xml文件配置
创建了一个测试demo,如图,在pom.xml中添加如下内容:
注意这的id和setting.xml中server配置的id必须相同
<distributionManagement>
<repository>
<id>nexus-releases</id>
<name>Releases</name>
<url>http://xx.xx.xx.xx:8081/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id>
<name>Snapshot</name>
<url>http://xx.xx.xx.xx:8081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
- 此时运行命令
mvn clean deploy
运行成功后,登录私服查看,由于项目版本是snapshots,所有会发布到maven-snapshots中,通过查看,可以看出已经部署到了该仓库,如下图:
5、实现从私服中下载资源
有两种方式:
- 配置mirror,可以在setting中添加如下内容:
url是maven-public仓库的访问地址
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://xx.xx.xx.xx:8081/repository/maven-public/</url>
</mirror>
2. 配置profile
<profile>
<id>dev</id>
<repositories>
<repository>
<id>Nexus</id>
<url>http://xx.xx.xx.xx:8081/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>dev</activeProfile>
</activeProfiles>
- 测试是否从仓库下载,以及仓库下载顺序
还是使用前面的测试demo项目,删除本地仓库中dom4j,点击maven中reimport,当下载好的时候,登录私服查看是否aliyun-proxy下载了相应的资源,如图:
可以看到,私服中已经下载相应资源,并且在aliyun-proxy优先下载
2018-10-18 updated
之前把nexus部署在阿里云服务器上,安稳运行一段时间了,而且阿里云服务器之前也一起运行了jenkins,但是今天又装了gitlab,结果今天总是出现nexus莫名其妙的运行停止,或者运行日志卡住等等奇怪的问题,日志也不报错,也就jvm.log看着貌似出现点错误,网上的方式尝试了一遍,但是都没有解决问题,最后越来越证实是因为内存不够的问题,造成nexus总是莫名其妙的停止。
阿里云服务器swap分区是0B,内存用完了都没有缓和的空间,现在采用降低nexus的jvm参数,并增加一个文件类型的swap分区了,目前修改之后,三个应用运行起来nexus还未自动停止过。
1)进入nexus根目录:
vi bin/nexus.vmoptions
修改一下内容
-Xms256M
-Xmx256M
2)用文件作为swap分区
dd if=/dev/zero of=/root/swapfile bs=1M count=2048 #创建一个2G的文件
mkswap /root/swapfile #格式化
swapon /root/swapfile #启用swap文件
为了开机能够挂载分区
vi /etc/fstab
增加一条记录
/root/swapfile swap swap defaults 0 0
修改完记得使用mount -o命令测试,不出现错误信息即为修改正确,否则会造成无法开机