赞
踩
原文网址:Docker--安装maven私服--方法/步骤_IT利刃出鞘的博客-CSDN博客
前言
本文环境实施是在远程Linux主机上面跑Nexus,然后本地进行开发测试。具体如下
下载一个nexus3的镜像:
docker pull sonatype/nexus3
启动容器
docker run -d -p 8081:8081 --name nexus -v /root/nexus-data:/var/nexus-data --restart=always sonatype/nexus3
使用nexus3镜像创建并启动一个容器,指定暴露8081端口到对应主机的8081端口,将容器内部/var/nexus-data挂载到主机/root/nexus-data目录。
在浏览器输入:http://ip:8081(ip为远程主机的ip地址,有的网址是:http://ip:8081/nexus/)
点击右上方的Sign in进行登录
Nexus3的初始账号密码已经不是admin/admin123。
输入 admin admin123 直接报错:
查日志 发现的确登陆不成功:
2. 后来注意到在登陆时有提示信息 ,密码保存在 /nexus-data下的 admin.password 中。
3. 进入容器:docker exec -it 容器id /bin/bash
4.进入容器后,找到admin.password ,查看并复制密码。
注意密码只有这一部分:cb424ffc-fc4b-41c1-9cbf-d7ea26efd978,紧跟后面的 bash-4.2$ 不是密码内容。
我也不清楚这里为什么没有自动换行。此密码不是密文,直接登陆时输入就行。
5.退出容器命令:exit
6. 登陆,输入密码:
直接 next,提示重置密码:
我并没有去查这个可选项是什么,只是随手勾上了。再 next 。
点击完成 。
关闭浏览器,清缓存,使用新密码登陆成功:
OK 了 。
如下图:
可以看到默认情况下Nexus
会帮我们创建了几个仓库,仔细观察红色框住的地方,里面有几种仓库的类型,解释如下:
下面我们仔细看一下里面的一些仓库。点击maven-central仓库:
可以看到是一个proxy类型的仓库,他代理的远程仓库地址是https://repo1.maven.org/maven2/。
后退,在进入maven-public查看:
可以看到这是一个group类型的仓库,里面包含了maven-releases/maven-snapshots/maven-central仓库,意思是我们只需要在本地添加这个仓库,则可以依赖到上述3个仓库中的库了。
为了实现本地上传代码库,并且实现依赖的示例,这里创建一个新的仓库(也可以选用已经存在的仓库)和一个用户
创建仓库,点击Create repository,然后选择maven2(hosted)然后输入仓库名称(test-release)。在version policy中选择这个仓库的类型,这里选择release,在Deployment policy中选择Allow redeploy(这个很重要).
创建成功如下:
创建用户
点击左侧菜单栏的Users菜单,然后点击Create local user.我这里创建了一个用户,账号密码都是:wangjianfeng
本地.m2目录下的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>test</id>
- <username>wangjianfeng</username>
- <password>wangjianfeng</password>
- </server>
- </servers>
- </settings>
上面指定私库的账号密码。
使用IDEA创建一个Maven项目。
pom.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>com</groupId>
- <artifactId>test-lib</artifactId>
- <!--注意限定版本一定为RELEASE,因为上传的对应仓库的存储类型为RELEASE-->
- <version>1.0-RELEASE</version>
- <packaging>jar</packaging>
-
- <!--指定仓库地址-->
- <distributionManagement>
- <repository>
- <!--此名称要和.m2/settings.xml中设置的ID一致-->
- <id>test</id>
- <url>http://xxx.xxx.xxx.xxx:8081/repository/test-release/</url>
- </repository>
- <!--
- <snapshotRepository>
- <id>test</id>
- <url>http://xxx.xxx.xxx.xxx:8081/repository/test-snapshot/</url>
- </snapshotRepository>-->
- </distributionManagement>
-
- <build>
- <plugins>
- <!--发布代码Jar插件。如果是SpringBoot项目,则不用写此插件,默认就有-->
- <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>
- <id>attach-sources</id>
- <phase>package</phase>
- <goals>
- <goal>jar</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </project>
代码
简单的代码:
- public class TestUtil {
-
- public static void main(String[] args) {
- System.out.println("I am from test-lib!");
- }
-
- }
部署
mvn deploy
如无意外,上传成功,回到Nexus的网页中查看结果。
可以看到已经上传成功。
本地再次创建一个项目,对这个项目进行依赖。
在pom.xml添加如下代码
- <dependencies>
- <dependency>
- <groupId>com</groupId>
- <artifactId>test-lib</artifactId>
- <version>1.0-RELEASE</version>
- </dependency>
- </dependencies>
-
- <repositories>
- <repository>
- <id>test</id>
- <url>http://xxx.xxx.xxx.xxx:8081/repository/test-release/</url>
- </repository>
- </repositories>
然后发现依赖成功了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。