CentOS7搭建Nexus+Maven私人仓库

Nexus是Maven的仓库管理器,pro版本收费,oss开源版是不收费的。

下载地址:
https://www.sonatype.com/nexus-repository-oss,下载了几次没有下载下来,无法访问。

安装jdk

安装maven

1
2
3
4
5
6
7
8
9
10
11
12
yum install maven
mvn -version

# maven home /usr/share/maven

vim /etc/profile
# 在文档的最后一行,加入如下文件
MAVEN_HOME=/usr/share/maven
export PATH=${MAVEN_HOME}/bin:${PATH},

# 重置配置文件,使刚才配置生效
source /etc/profile

linux下maven仓库默认位置

1
cd /root/.m2/repository/

安装nexus

打开/mnt目录,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
cp nexus-3.18.1-1.tar.gz  /mnt/
# 解压
tar -zvxf nexus-3.18.1-1.tar.gz
# 目录重命名
mv nexus-3.18.1-01/ nexus
## 安装目录 /mnt/nexus/

vim /etc/profile
# 结尾加上
export RUN_AS_USER=root
# 刷新
source /etc/profile

## 修改运行nexus所使用的用户 /mnt/nexus/bin
vim nexus.rc
# 修改内容为
run_as_user="root"

## 修改nexus默认端口 本文配置位置/mnt/nexus/etc,nexus-default.properties
application-port=8088 # 默认为8081

## 修改nexus数据及日志的存储位置等/mnt/nexus/etc,nexus.vmoptions

/mnt/nexus/bin/nexus.vmoptions


## 启动nexus,/mnt/nexus/bin中 启动web界面
./nexus run &

## 启动nexus
./nexus start

## 查看nexus运行状态
./nexus status

# 安装到系统服务
cp nexus /etc/init.d/nexus
chkconfig --add nexus
chkconfig --levels 345 nexus on
# 启动 nexus

systemctl start nexus

maven私服仓库配置

设置nexus仓库账号和密码

linuxmavensettings.xml文件地址为/etc/maven

1
2
3
4
5
6
7
8
9
10
11
12
13
```xml
<servers>
<server>
<id>releases</id>
<username>admin</username>
<password>LoveNexus520!</password>
</server>
<server>
<id>snapshots</id>
<username>admin</username>
<password>LoveNexus520!</password>
</server>
</servers>

maven中pom.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<!--指定从该Nexus仓库下载依赖包-->
<repositories>
<!-- 包含需要连接到远程仓库的信息 -->
<repository>
<!-- 远程仓库id,可以用来匹配在settings.xml文件里配置的远程仓库 -->
<id>public</id>
<!-- 远程仓库名称 -->
<name>aliyun nexus</name>
<!-- 远程仓库URL -->
<!--<url>http://maven.aliyun.com/nexus/content/groups/public/</url>-->
<url>http://仓库地址url:8081/repository/maven-releases/</url>
<!-- 处理远程仓库里发布版本的下载 -->
<releases>
<!-- true或false表示该仓库是否为下载某种类型构件(发布版,快照版)开启。 -->
<enabled>true</enabled>
<!-- 更新构件的频率。Maven会比较本地POM和远程POM的时间戳。选项:always(一直),daily(默认每日),inteval:X(X是以分钟为单位),never(从不)-->
<updatePolicy>never</updatePolicy>
<!-- 当Maven验证构件校验文件失败时怎么做:ignore(忽略),fail(失败),warn(警告) -->
<checksumPolicy>ignore</checksumPolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>ignore</checksumPolicy>
</snapshots>
<!-- 用于定位和排序构件的仓库布局类型-可以使default(默认)或者legacy(遗留) -->
<layout>default</layout>
</repository>
</repositories>
<!--指定管理远程仓库地址-->
<distributionManagement>
<repository>
<id>releases</id>
<name>Releases</name>
<url>http://仓库地址url:8081/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<name>Snapshot</name>
<url>http://仓库地址url:8081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>

问题

问题一

Current thread (0x00007ff81004d000): JavaThread “Unknown thread” [_thread_in_vm, id=12757, stack(0x

因为买的腾讯云服务器内存可能小了点,只有2g不到,但是nexus默认配置就是2700m等,因此,在nexus.vmoptions修改配置。重启就发现已经成功了

问题二

本文配置,nexus3.18版本的密码默认不是admin/admin123了,点击登录提示:
/usr/share/sonatype-work/nexus3/admin.password,密码就是这个文件里面的随机密码,账号为admin。

问题三

nexus 自动关闭,需要在CentOS 7上添加Swap交换空间:
https://blog.csdn.net/zstack_org/article/details/53258588

问题四

聚合项目deploy指定module:

在不发布的模块上增加以下配置即可:

1
2
3
<properties>
<maven.deploy.skip>true</maven.deploy.skip>
</properties>