转载请声明,本文来自:https://blog.youkuaiyun.com/shijianduan1/article/details/87635336
本文搭建部分参考:搭建Maven私服那点事
地址访问Nexus 被拒绝部分参考:Ubuntu 16.04 环境使用Sonatype Nexus 搭建私有maven仓库
一、配置maven环境
- 下载 maven包 ,自己选个顺眼的路径
wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.2/source/apache-maven-3.6.2-src.tar.gz
- 解压
tar -zxvf apache-maven-3.6.0-bin.tar.gz
- 移动解压后文件(这里可以优化,直接解压到指定目录)
sudo mv apache-maven-3.6.0 /usr/local/maven3.6
- 修改环境变量
vim编辑器打开文件
sudo vim /etc/profile
进入修改模式(也可以是其他字母)
a
光标移到最后,添加内容
#maven
MAVEN_HOME=/usr/local/maven3.6
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin
按 Esc键, 手打 :wq
(保存退出)
- 确认已经修改(可以略过)
vim /etc/profile
光标移到最后,是否有内容
按 Esc键, 手打 :q!
(强制退出)
- 配置生效命令
source /etc/profile
- 确认生效
mvn -v
二、配置nexus环境
- 安装jdk环境(这里需要使用orcale的java,不支持openjdk)
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get install oracle-java8-installer
- 下载nexus包,自己选个顺眼的路径
wget https://sonatype-download.global.ssl.fastly.net/repository/repositoryManager/3/nexus-3.15.2-01-unix.tar.gz
- 解压
tar -zxvf nexus-3.15.2-01-unix.tar.gz
- 移动解压后文件(这里可以优化,直接解压到指定目录)
sudo mv nexus-3.15.2-01 /usr/local/nexus3.15
- 启动
/usr/local/nexus3.15/bin/nexus start
12.正常结果
三、远程访问Nexus
但是,在外部访问 ip/nexus 地址的时候,访问被拒绝了。
后来排查到是nexus的设置问题,
- 所以如果需要 远程访问服务器的Nexus配置页面,还需要额外设置
- 还一个是nexus没有起来,其他blog说是 端口和jdk路径不对,但我排查了下感觉没问题
- 打开配置文件
sudo vim /usr/local/nexus3.15/bin/nexus.rc
- 修改配置文件(用户,指定java版本[一个java可以忽略,#是注释符])
run_as_user=“root”
#INSTALL4J_JAVA_HOME_OVERRIDE=/usr/bin/java
- 打开配置文件2
sudo vim /usr/local/nexus3.15/etc/nexus-default.properties
- 修改配置文件(端口,允许可访问地址)(默认不用改)
application-port=8081
application-host=0.0.0.0
- 重启
/usr/local/nexus3.15/bin/nexus restart
四、Nexus开机自启动
参考文章:nexus在ubuntu下配置开机自动启动
以下复制,还未做归纳
建立软连接
ln -s /root/nexus/nexus-oss-webapp-1.9.2/bin/jsw/linux-x86-32/nexus /etc/init.d/nexus
给nexus授权
chmod 755 /etc/init.d/nexus
将nexus设置为系统服务
update-rc.d nexus defaults
设置过程出现的问题:
查看nexus下面的日志logs/wrapper.log
运行失败 Unable to start JVM: No such file or directory (2)
将conf/wrapper.conf中的wrapper.java.command=java 改成java的绝对路径即可
五、Nexus3.X启动失败
这里的问题环境是 : ubuntu , Nexus 3.X
错误日志:
ubuntu@ip-172-31-34-150:~$ sudo /usr/local/nexus3.15/bin/nexus start
WARNING: ************************************************************
WARNING: Detected execution as "root" user. This is NOT recommended!
WARNING: ************************************************************
Starting nexus
#Started nexus (正常启动的会有这行,而我的没有)
ubuntu@ip-172-31-34-150:~$
分析:
- 首先运行命令
./bin/nexus run
,查看日志 - 分析了好久,查看了网上的好多文章, 有说端口和jdk路径不对;
但 - 如果是多java环境 或者端口占用问题,可以参考下面的官网地址
官网l链接:OpenJDK or other Java distributions or older Java versions are not supported.
日志一:
这里看到log : cannot read ../sonatype-work/nexus3/...... , no permission
(大概就这样,这个没有截到图),意思就是 和 nexus3.15 的同级目录 sonatype-work,没有读取权限
解决一:
这里执行命令sudo chown ubuntu:ubuntu -R ../sonatype-work
日志二:
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000b5000000, 419430400, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 419430400 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /usr/local/nexus3.15/hs_err_pid5746.log
分析二: 这个是容器内存不足,需要增加内存分配
解决二:
- 一个增加jvm内存 ,执行修改配置命令:
vim ./bin/nexus.vmoptions
,默认是2G,最大支持4G,请根据自身来设置 (一般情况下是够的,不用修改这个)
-XX:MaxDirectMemorySize=2G
- 另一个系统内存不够了,需要增加内存,(我的就是1G内存 T_T 糟心)
具体请看:官网的Nexus系统要求
日志三:
ubuntu@ip-172-31-34-150:~$ /usr/local/nexus3.15/bin/nexus run
……
此处特别长,省略
……
2019-02-20 03:01:00,459+0000 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.internal.log.LogbackLoggerOverrides - File: /usr/local/sonatype-work/nexus3/etc/logback/logback-overrides.xml
2019-02-20 03:01:00,461+0000 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.internal.log.LogbackLogManager - Configuring
2019-02-20 03:01:00,485+0000 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.extender.NexusContextListener - Installing: [nexus-oss-feature/3.15.2.01]
Killed
ubuntu@ip-172-31-34-150:~$ /usr/local/nexus3.15/bin/nexus start
Starting nexus
分析三: 如果看到这条日志,请再重新执行一遍,得到更明确的日志