私服可以减少开发过程中去网络上依赖jar包的拉取时间,也可以把自己公司业务的jar包放在私服上,为后期开发提供帮助。
CentOS7 64 位
jdk-8u141-linux-x64.tar.gz
apache-maven-3.5.4-bin.tar.gz
nexus-2.13.0-01-bundle.tar.gz
在这里我是直接使用的 root 用户权限进行的安装,如果小伙伴在安装过程中遇到了权限问题,可以联系公司管理人员进行调配。
如果你的服务器可以访问外网的话可以通过以下命令获取到JDK8的安装包。
64位:wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz"
32位:wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-i586.tar.gz"
如果你的电脑无法访问外网,那就需要使用浏览器访问官网进行下载,然后再传送到Linux服务器上,下载地址:JDK 下载
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
使用命令解压下载好的jdk:
tar -zxvf jdk-8u141-linux-x64.tar.gz
然后进入到 jdk 目录中
cd jdk1.8.0_141
输入命令:
pwd
记录下当前的目录路径用于配置JAVA_HOME环境变量,然后使用命令:
vim /etc/profile
在文件最下方添加代码:
export JAVA_HOME=/opt/jdk/jdk1.8.0_141
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}
保存之后输入命令使文件重新生效:
source /etc/profile
然后输入命令校验JDK环境变量是否安装成功:
java -version
因为maven的安装是需要依赖JDK的,所以上文先对JDK进行了安装。
如果连接外网通过使用命令下载(无法访问外网的小伙伴可以通过类似上传JDK的方式上传文件):
wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz
解压maven:
tar -zxvf apache-maven-3.5.4-bin.tar.gz
进入到maven目录下:
cd apache-maven-3.5.4
输入命令记录下maven的文件路径:
pwd
使用命令编辑文件,在文件底部添加如下代码配置maven环境变量:
export MAVEN_HOME=/opt/maven/apache-maven-3.5.4
export PATH=$PATH:$MAVEN_HOME/bin
使用命令让配置文件重新生效:
source /etc/profile
检测maven安装成果:
mvn -version
nexus是一个强大的maven仓库管理器,它极大的简化了本地内部仓库的维护和外部仓库的访问。
nexus是一套开箱即用的系统不需要数据库,它使用文件系统加Lucene来组织数据。
nexus使用ExtJS来开发界面,利用Restlet来提供完整的REST APIs,通过IDEA和Eclipse集成使用。
nexus支持webDAV与LDAP安全身份认证。
nexus提供了强大的仓库管理功能,构件搜索功能,它基于REST,友好的UI是一个extjs的REST客户端,占用较少的内存,基于简单文件系统而非数据库。
1.加速构建。
2.节省带宽。
3.节省中央maven仓库的带宽。
4.稳定(应付一旦中央服务器出问题的情况)。
5.控制和审计。
6.能够部署第三方构件。
7.可以建立本地内部仓库。
8.可以建立公共仓库。
通过网络获取(无法通过网络获取的,请自行下载并上传到服务器):
wget http://download.sonatype.com/nexus/3/nexus-3.12.0-01-unix.tar.gz
解压文件:
tar -zxvf nexus-3.12.0-01-unix.tar.gz
进入到bin目录下:
cd bin
执行命令:
./nexus start
先来看启动命令脚本:
这里我因为是root用户启动的命令,所以会报错:
****************************************
WARNING - NOT RECOMMENDED TO RUN AS ROOT
****************************************
If you insist running as root, then set the environment variable RUN_AS_USER=root before running this script.
通过提示添加环境变量可以解决这个问题:
vim /etc/profile
在文件底部添加:
export RUN_AS_USER=root
使用命令让配置文件重新生效:
source /etc/profile
然后再次尝试启动,只会有个警告信息,但是nexus是正常启动的:
****************************************
WARNING - NOT RECOMMENDED TO RUN AS ROOT
****************************************
Starting Nexus OSS...
Started Nexus OSS.
使用命令查看端口是否正常启动(8081默认端口,可以进行自己更改):
lsof -i:8081
因为如果想通过浏览器进行访问的话,需要设置端口,我这里为了方便直接关闭了防火墙。
systemctl stop firewalld.service
下面通过浏览器访问:
http://192.168.247.128:8081/nexus/
可以看到如下的界面:
有一些功能需要登录之后才可以进行管理和设置,点击右上角登录。
初始账户:admin
初始密码:admin123
这里仅介绍使用到的模块,其他模块有兴趣的小伙伴可以自行摸索。
repository | type | health check | format | policy | repository statuts | repository path |
---|---|---|---|---|---|---|
仓库名称 | 类型 | 健康状态检查 | 格式 | 政策 | 仓库状态 | 仓库路径 |
hosted:宿主仓库,主要用于部署无法从公共仓库获取的构件(如 oracle 的 JDBC 驱动)以及自己或第三方的项目构件;
proxy:代理的意思,代理中央maven仓库,当电脑访问中央仓库的时候,先通过proxy下载到nexus仓库,然后再从nexus下载到电脑(只要有一个人下载,其他人在下载就可以通过nexus私服下载了)。
group:仓库组,可以将多个仓库聚合,从而不用在pom文件中配置多个地址;
virtual:中央仓库镜像,支持M1老版本。
首先通过web管理界面设置一个仓库的类型(这里以oracle的数据库连接驱动jar包为例)。
因为是依赖第三方jar包,所以建立的是hosted repository。选择之后会提示让输入一些信息。
选中新建的仓库,先选择 Artifact Upload 然后选择 GAV 坐标的方式设置上传。
设置自己的 GAV 坐标,选择上传的包是那种类型。
点击添加并上传。
可以在 Browse Index 下查看上传结果。
选中上传的jar可以看到maven依赖的坐标。
在程序中使用maven私服下载jar包是比较方便的,只需要在pomp文件中添加代码即可,这个代码在nexus上是可以找到的:
houry
http://192.168.247.128:8081/nexus/content/repositories/houry
首先在本地的maven目录下conf目录下设置settings.xml
houry
admin
admin123
然后在pom.xml中配置,这里需要注意的是 ID上下必须一致,也可以在web管理端中,粘贴进入pom.xml中。
houry
houry-repository
http://192.168.247.128:8081/nexus/content/repositories/houry
在设置之前需要把仓库设置成快照版,然后才能进行上传和删除:
然后使用IDEA开发工具,先进行clean,在进行deploy。
然后查看控制台:
可以查看到上传成功。