Maven公服 http://maven.aliyun.com
1. https://hub.docker.com 搜索nexus
2. docker pull sonatype/nexus3
3. 创建Docker目录,创建nexus目录
cd /usr/local/
mkdir docker
cd docker/
mkdir nexus
cd nexus/
vi docker-compose.yml
4. 使用Docker来安装和运行Nexus,docker-compose.yml配置如下:
version:'3.1'
services:
nexus:
restart:always
image:sonatype/nexus3
container_name:nexus
ports:
-8081:8081
volumes:
- /usr/local/docker/nexus/data:/nexus-data
5. docker-compose up -d
6. 访问http://ip:8081
7. 看日志
docker ps
docker logs containerID
8. 如果报错没权限 查看data中是否有数据,让data有所有权限
cd /data/
ll
docker-compose down
chmod 777 data/
9. docker-compose -up -d
10. 启动nexus耗内存,看内存状态,nexus的启动需要耗费近1G内存;
free -h
htop
11. 登陆nexus,默认用户名`admin`密码`admin123`
12. 在Maven setting.xml中添加Nexus认证信息(servers节点下)
<server>
<id>nexus-releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>nexus-snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
13. 把项目和私服关联起来,在pom.xml添加配置
<distributionManagement>
<repository>
<id>nexus-releases</id>
<name>Nexus Release Repository</name>
<url>http://192.168.0.148:8081/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<repository>
<id>nexus-snapshots</id>
<name>Nexus Snapshot Repository</name>
<url>http://192.168.0.148:8081/repository/maven-snapshots/</url>
</repository>
</snapshotRepository>
</distributionManagement>
注:ID与setting.xml中Servers配置的一致
url地址与私服仓库地址一致
14. mvn deploy -Dmaven.test.skip=true
15. 项目需要依赖先去本地找,本地没有去私服(内网)找,私服没有去官服找;
第三方依赖或者自己写的jar,可以手动上传到私服,3.13版本nexus支持上传功能
16. 配置代理仓库,目的是使项目走私服下载依赖到本地仓库
<repositories>
<repository>
<id>nexus</id>
<name>Nexus Repository</name>
<url>http://192.168.0.148:8081/repository/maven-public/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
<repositories>
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<name>Nexus Repository</name>
<url>http://192.168.0.148:8081/repository/maven-public/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</pluginRepository>
</pluginRepositories>
17. 到这里项目就可以从私服到本地仓库了
1、SNAPSHOT版本代表不稳定(快照版本),还在处于开发阶段,随时都会有变化。当上传同样的版本号jar包的时候,SNAPSHOT会在版本号的后面自动追加一串新的数字,即日志标签;
2、RELEASE则代表稳定的版本(发布版本),一般上线后都会改用RELEASE版本。
在maven的依赖管理机制中,唯一标识一个依赖项是由该依赖项的三个属性构成的,分别是groupId、artifactId以及Version。这三个属性唯一确定一个组件(即我们平时说的war包和jar包)。
3. 仓库中public是集合了快照版和发行版的映射
来源:oschina
链接:https://my.oschina.net/u/4419355/blog/3452281