1. Linux安装Nexus
docker pull sonatype/nexus3
2. 运行Nexus容器
docker run -d --name nexus3 -p 8081:8081 -v /opt/myDocker/nexus:/var/nexus-data sonatype/nexus3
3. 访问页面
4. 仓库说明
maven-central:maven中央库,默认从https://repo1.maven.org/maven2/拉取jar
maven-releases:私库发行版jar,初次安装完后,将Deployment policy设置为Allow redeploy
maven-snapshots:私库快照(调试版本)jar
maven-public:仓库分组,把上面三个仓库组合在一起对外提供服务,在本地maven基础配置settings.xml或项目pom.xml中使用
5. 仓库类型
Group:这是一个仓库聚合的概念,用户仓库地址选择Group的地址,即可访问Group中配置的,用于方便开发人员自己设定的仓库。maven-public就是一个Group类型的仓库,内部设置了多个仓库,访问顺序取决于配置顺序,3.x默认Releases,Snapshots,Central,也可以自己设置。
Hosted:私有仓库,内部项目的发布仓库,专门用来存储本地项目生成的jar文件
Proxy:代理类型,从远程中央仓库中寻找数据的仓库(可以点击对应的仓库的Configuration页签下Remote Storage属性的值即被代理的远程仓库的路径),如可配置阿里云maven仓库
6. 进入容器修改密码
docker exec -it 974a810d82a6 /bin/bash
根据nexus3登录时密码所在位置提示,找到密码所在地,然后查看密码。(一段字符串)
cat admin.password
登录后,根据提示修改密码
7. 打包上传到仓库
首先配置maven的setting.xml
<server>
<server>
<id>maven-releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>maven-snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
上传jar的pom文件中加入
<distributionManagement>
<repository>
<id>maven-releases</id>
<name>Releases</name>
<url>http://ip:8081/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>maven-snapshots</id>
<name>Snapshot</name>
<url>http://ip:8081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
父类打包为pom类型,打包服务类时会提示没有main类,此时需要在pom文件加入
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
然后运行maven的deploy命令
8. 使用maven私服jar文件
9. 使用私服jar
首先换另一个项目,在pom中增加
<repositories>
<repository>
<id>nexus-central</id>
<name>private-hxlh</name>
<url>http://ip:8081/repository/maven-public/</url>
</repository>
</repositories>
<dependency>
<groupId>com.atguigu</groupId>
<artifactId>common_util</artifactId>
<version>0.0.1</version>
</dependency>