搭建Nexus
大约 3 分钟
文档
CentOS7 安装 Nexus
########################
## Nexus的下载地址:https://www.sonatype.com/download-oss-sonatype
## 官方安装文档:https://help.sonatype.com/repomanager3/installation/installation-methods
########################
# 安装前确保已经安装JDK和maven
java -version
mvn -v
# 下载地址
wget https://sonatype-download.global.ssl.fastly.net/repository/repositoryManager/3/nexus-3.25.1-04-unix.tar.gz
# 解压文件
tar xvf nexus-3.25.1-04-unix.tar.gz -C /usr/local/lib/
ll /usr/local/lib/nexus-3.25.1-04
# 修改端口,默认是8081
#sed -i 's/application-port=.*/application-port=8081/g' /usr/local/lib/nexus-3.25.1-04/etc/nexus-default.properties
# 修改启动用户,(默认即可)
sed -i 's/.*run_as_user=.*/run_as_user="root"/g' /usr/local/lib/nexus-3.25.1-04/bin/nexus.rc
# 可修改jvm参数(默认即可)
#vi /usr/local/lib/nexus-3.25.1-04/bin/nexus.vmoptions
# 开放8081端口
firewall-cmd --zone=public --add-port=8081/tcp --permanent && firewall-cmd --reload
# 启动nexus,也可选择下面的service管理方式启动
cd /usr/local/lib/nexus-3.25.1-04/bin && ./nexus start
# 默认admin的密码,重置以后,改文件消失
cat /usr/local/lib/sonatype-work/nexus3/admin.password
# 访问地址 192.16.18.99:8081 默认用户名admin
设置开机自启(推荐)
https://help.sonatype.com/repomanager3/installation/system-requirements
cat >> /usr/lib/systemd/system/nexus3.service << EOF
[Unit]
Description=nexus service
After=network.target
[Service]
Type=forking
Environment="JAVA_HOME=/usr/local/lib/jdk1.8.0_201/"
ExecStart=/usr/local/lib/nexus-3.25.1-04/bin/nexus start
ExecReload=/usr/local/lib/nexus-3.25.1-04/bin/nexus restart
ExecStop=/usr/local/lib/nexus-3.25.1-04/bin/nexus stop
User=root
Restart=on-abort
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload && systemctl enable nexus3.service
systemctl start nexus3.service && systemctl status nexus3.service
全局配置下载依赖(即项目 pom 无需配置)
在 maven 的 setting.xml 文件中配置私服配置,这种方式配置后所有本地使用该配置的 maven 项目的 pom 文件都无需配置私服下载相关配置
<profiles> <profile> <id>mymaven</id> <repositories> <!-- 私有库地址--> <repository> <id>nexus</id> <url>http://192.16.18.99:8081/repository/maven-public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <!--插件库地址--> <pluginRepository> <id>nexus</id> <url>http://192.16.18.999:8081/repository/maven-public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository> </pluginRepositories> </profile> </profiles>
激活使用上面的配置
<!--激活profile--> <activeProfiles> <activeProfile>mymaven</activeProfile> </activeProfiles>
指定镜像代理为我们的私服
<mirror> <id>nexus-myself</id> <!--*指的是访问任何仓库都使用我们的私服--> <mirrorOf>*</mirrorOf> <name>Nexus myself</name> <url>http://192.16.18.99:8081/repository/maven-public/</url> </mirror>
单独项目下载依赖(即项目 pom 文件中配置)
这种配置是修改单个项目的 pom 文件,无需修改 maven 的 setting 配置(尽管如此说,但是如果 setting.xml 中配置了 mirror 标签,并且 mirrorOf 为*或者私服地址,还是会被拦截,被代理指向代理地址)
<repositories>
<repository>
<id>nexus</id>
<url>http://192.16.18.99:8081/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
本地 maaven 开发的项目上传配置
maven 的 setting 文件配置
<servers> <server> <id>nexus-releases</id> <username>admin</username> <password>admin</password> </server> <server> <id>nexus-snapshots</id> <username>admin</username> <password>admin</password> </server> </servers>
项目中的 pom 文件配置
<distributionManagement> <repository> <id>nexus-releases</id> <name>Nexus Release Repository</name> <url>http://192.16.18.99:8081/repository/maven-releases/</url> </repository> <snapshotRepository> <id>nexus-snapshots</id> <name>Nexus Snapshot Repository</name> <url>http://192.16.18.99:8081/repository/maven-snapshots/</url> </snapshotRepository> </distributionManagement>
执行 maven 的 deploy 命令,即可上传到 maven 私服。