1、下载nexus
wget https://sonatype-download.global.ssl.fastly.net/repository/repositoryManager/3/nexus-3.18.1-01-unix.tar.gz
或者前往官网下载最新的安装包
https://www.sonatype.com/
Professional Edition为收费版,OSS Edition为免费版。笔者下载使用的是OSS Edition。
2、启动nexus
解压安装包后,进入bin目录,执行:
sudo ./nexus run
程序启动后,可以访问web界面:
localhost:8081
3、配置nexus为系统服务
创建配置文件:
sudo vim /etc/systemd/system/nexus.service
写入:
[Unit]
Description=nexus service
After=network.target
[Service]
Type=forking
ExecStart=/home/nexus-3.18.1-01/bin/nexus start
ExecStop=/home/nexus-3.18.1-01/bin/nexus stop
User=root
Restart=on-abort
[Install]
WantedBy=multi-user.target
启动服务:
systemctl daemon-reload
systemctl enable nexus.service
systemctl start nexus.service
4、几种Repository
hosted:宿主仓库,用于发布内部项目,比如内部jar等;
proxy:代理仓库,可以代理maven中央仓库,阿里云镜像仓库等;
group:仓库组合,可以聚合多个hosted和group仓库
5、settings.xml配置
<?xml version="1.0" encoding="utf-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!-- 授权信息 -->
<servers>
<server>
<id>Release</id>
<username>admin</username>
<password>nexus3-1001</password>
</server>
<server>
<id>Snapshot</id>
<username>admin</username>
<password>nexus3-1001</password>
</server>
</servers>
<!-- 镜像拦截 -->
<mirrors>
<mirror>
<id>Release</id>
<mirrorOf>*</mirrorOf>
<url>http://xxx.xxx.xxx.xxx:8081/repository/maven-public/</url>
</mirror>
<mirror>
<id>Snapshot</id>
<mirrorOf>*</mirrorOf>
<url>http://xxx.xxx.xxx.xxx:8081/repository/maven-public/</url>
</mirror>
</mirrors>
<!-- 配置文件 -->
<profiles>
<profile>
<id>coder</id>
<repositories>
<repository>
<id>MyGroup</id>
<url>http://xxx.xxx.xxx.xxx:8081/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>MyGroup</id>
<url>http://xxx.xxx.xxx.xxx:8081/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</pluginRepository>
</pluginRepositories>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
</profiles>
<activeProfiles>
<activeProfile>coder</activeProfile>
</activeProfiles>
</settings>
6、maven pom.xml配置
<!-- 发布maven私服 -->
<distributionManagement>
<repository>
<id>Release</id>
<name>RELEASE</name>
<url>http://xxx.xxx.xxx.xxx:8081/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>Snapshot</id>
<name>SNAPSHOOT</name>
<url>http://xxx.xxx.xxx.xxx:8081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
<!-- 从nexus下载项目依赖文件 -->
<repositories>
<repository>
<id>MyGroup</id>
<name>MyGroup</name>
<url>http://xxx.xxx.xxx.xxx:8081/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<!-- 插件仓库 -->
<pluginRepositories>
<pluginRepository>
<id>MyGroup</id>
<url>http://xxx.xxx.xxx.xxx:8081/repository/maven-public/</url>
</pluginRepository>
</pluginRepositories>