一.基于Docker搭建Maven私服
1.下载镜像
docker pull sonatype/nexus3
2.配置参数启动容器
docker run -d -p 8081:8081 --name nexus --restart=always -v /opt/docker-nexus/data:/var/nexus-data sonatype/nexus3
参数说明:
- -d 后台运行
- -p 8081:8081 端口映射
- –name nexus 设置容器别名
- –restart=always 跟随docker启动
- -v /opt/docker-nexus/data:/var/nexus-data 数据挂载到宿主机目录
访问 http://ip:8081
Maven私服启动容器稍微比较慢,等待1分钟即可。
默认登陆账号 admin 密码 admin123
二.创建Maven私服仓库
1.点击设置按钮 – Repository – Create Repository
2.创建仓库
点击Create repository,然后选择maven2(hosted)然后输入仓库名称(lss-release)。在version policy中选择这个仓库的类型,这里选择release,在Deployment policy中选择Allow redeploy(这个很重要)
3. 创建私服账号
点击左侧菜单栏的Users菜单,然后点击Create local user
注意:status选择Active Granted授权nx-admin和nx-anonymous
三.将jar包上传到Maven私服
1. 配置Maven settings.xml
找到Maven的settings.xml文件,在中添加如下配置:
<servers>
<!-- Maven私服配置 -->
<server>
<id>lss0555</id> <!-- id 也是用户名 -->
<username>lss0555</username> <!-- 用户名-->
<password>888888</password> <!-- 密码-->
</server>
</servers>
2. 配置要上传项目的 pom.xml
注意:项目的限定版本一定为RELEASE,因为上传的对应仓库的存储类型为RELEASE ,如下:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
3.poml文件配置
1.根标签下添加仓库地址配置(也可以直接配置在settings.xml中,就不用每个项目都配置了)
<project> <--根标签-->
<!--指定仓库地址 -->
<distributionManagement>
<repository>
<!--此名称要和.m2/settings.xml中设置的ID一致 -->
<id>lss0555</id>
<url>http://192.168.102.129:8081/repository/lss_realse/</url>
</repository>
</distributionManagement>
</project>
2.标签的下添加发布代码的插件依赖
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source> <!--指明源码用的Jdk版本-->
<target>1.8</target> <!--指明打包后的Jdk版本-->
</configuration>
</plugin>
<!--发布代码Jar插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.7</version>
</plugin>
<!--发布源码插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
3.mvn 打包
先mvn clean ,再进行 mvn deploy
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 29.821 s
[INFO] Finished at: 2020-01-13T08:35:21+08:00
[INFO] Final Memory: 44M/288M
进入nexus查看,此时已经有了上传的jar包
可以直接在search界面中,search上传项目的名称,api
四.测试依赖信息,下载maven私服jar包
1.新建Maven项目,在pom.xml添加依赖:
<dependencies>
<dependency>
<groupId>com.sxkj</groupId>
<artifactId>api</artifactId>
<version>0.0.3-RELEASE</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>lss0555</id>
<url>http://192.168.102.129:8081/repository/lss_realse/</url>
</repository>
</repositories>
2.在setting.xml里面加入
<mirror>
<id>lss0555</id>
<mirrorOf>*</mirrorOf>
<name>Local Repository</name>
<url>http://192.168.102.129:8081/repository/lss_realse/</url>
</mirror>
五.问题
1.Incorrect username or password, or no permission to use the application.
首次登陆使用用户名密码:admin admin123提示这句话
解决:
1.查找该文件位置
find / -name ‘admin.password’
[root@localhost conf.d]# find / -name 'admin.password'
/var/lib/docker/volumes/5e9c11cb210d1c455816df186170072c0684be9aa2a8e4029192da0f499d2106/_data/admin.password
2.打开该文件查看密码
cd /var/lib/docker/volumes/5e9c11cb210d1c455816df186170072c0684be9aa2a8e4029192da0f499d2106/_data/
cat admin.password
85fed095-d43f-4c2c-8021-f6cf9a979bef
里面内容即为密码