基于Docker构建Maven私服库
前提: 本文档基于读者已经安装好Docker,如果未安装Docker请参考链接。
安装nexus3
#下载nexus3 容器
$ docker pull sonatype/nexus3
#创建目录作为数据卷
$ mkdir /some/dir/nexus-data && chown -R 200 /some/dir/nexus-data
$ docker run -d -p 8081:8081 --name nexus -v /some/dir/nexus-data:/nexus-data --restart unless-stopped sonatype/nexus3
#查看执行日志
$ docker logs -f nexus
如果一切成功的话,会显示如下日志信息。
Nexus 的Maven 仓库配置
Proxy私库配置
配置Maven setting文件
修改“nexus.ip”为nexus容器部署的ip地址
<?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">
<pluginGroups>
<pluginGroup>org.sonatype.plugins</pluginGroup>
</pluginGroups>
<proxies></proxies>
<servers>
<server>
<id>nexus</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
<mirrors>
<mirror>
<id>nexus-private</id>
<mirrorOf>*</mirrorOf>
<name>Nexus</name>
<url>http://nexus.ip:8081/repository/maven-public/</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>nexus</activeProfile>
</activeProfiles>
</settings>
修改pom.xml文件
修改nexus.ip 为你的nexus的ip地址
<distributionManagement>
<repository>
<id>nexus</id>
<name>Releases</name>
<url>http://nexus.ip:8081/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>nexus</id>
<name>Snapshot</name>
<url>http://nexus.ip:8081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
更新依赖并查看nexus是否下载成功
mvn deploy:deploy-file -DgroupId=group.id -DartifactId=artifact.id -Dversion=version -Dpackaging=jar -Dfile=your/jar/path/xxx.jar -Durl=http://nexus.ip:port/repository/maven-releases/ -DrepositoryId=nexus
替换发布的jar的 group.id、artifact.id、version 、your/jar/path/xxx.jar、nexus.ip
-DrepositoryId=nexus 这个是setting.xml 中配置的id。