这篇文章是关于如何通过Linux中的Docker构建Nexus私有服务的,服务器桂哥网络觉得很实用,就分享给大家参考,跟着桂哥网络看了一下。
如何通过服务器的Docker构建Nexus私有服务
一、安装Nexus
1.创建存储数据的位置
#转到目录。请自便
cd/srv
#创建文件夹
mkdirnexus-数据
#给予权限,否则启动会报错,没有操作权限
Chmod777nexus-data2,启动
只需执行以下命令,镜像就会自动被拉起并启动
docker run-d-p 8081:8081-name nexus-v/SRV/nexus-data :/nexus-data-restart=alwaysonatype/nexus 3。通过docker log-f nexus检查启动日志。当启动的Sonatype Nexus OSS出现时,表示启动成功。此时,通过http://ip:8081。
点击右上角的登录即可登录,账号为admin,需要在镜像中查看密码
#去镜子前
dockersec-itnexusbash
#检查密码,登录框会提示路径,然后复制。成功登录后,系统会要求您更改密码
此时,cat/nexus-data/admin-password启动。进入首页后,点击左侧菜单栏中的浏览,即可查看您所拥有的仓库
二、Nexus仓库
1、仓库类型
Nexus有四个仓库和四种仓库类型
仓库
仓库名称描述maven-centralmaven中央图书馆。默认情况下,jarmaven-public warehouse of jarmaven-releases private library distribution jarmaven-snapshot private library snapshot(debug version)是从https://repo1.maven.org/maven2/,提取的,上述三个仓库结合起来为外部世界提供服务。b和type在本地maven基本配置设置中使用。
类型描述组(仓库组类型)用于方便开发人员设置自己的托管仓库(托管类型),并发布内部项目仓库(内部开发人员,为存储而发布的存储库)代理(代理类型)从远程中心仓库(您可以单击相应仓库的“配置”选项卡下的“远程存储位置”属性的值,即代理的远程仓库的路径)虚拟(虚拟类型)虚拟仓库(这基本上是不需要的,重点使用上述三个仓库)2、拉取jar包流程
Maven可以直接从主机仓库或代理仓库下载组件,而代理仓库间接从远程仓库下载并缓存组件。为了方便起见,Maven可以从仓库组下载组件,但是仓库组没有实际的内容(在下图中用虚线表示,它将转向包含的主机仓库或代理仓库来获取实际的组件内容)
3、创建仓库
经过上面的解释,我们已经对仓库有了一个了解。接下来,我们创建仓库,分为代理仓库、托管仓库和仓库组。点击主页上的小螺丝,然后选择
Repositories
进入仓库管理列表,然后就可以开始创建我们的仓库啦,选择仓库类型的时候一定要选择maven2
a、proxy代理仓库
我们使用阿里的中央仓库
b、hosted宿主仓库
这里可以创建releases
和snapshot
类型的仓库,这里就演示一种
c、group仓库组
三、项目配置
前两章走完我们已经在Linux服务器部署好了nexus并且创建好了我们的仓库,接下来我们就来试着在项目中配置
1、创建一个Maven项目
为了演示,就随便创建个工具类玩,以下是目录结构
2、pom文件
这里为了演示我就配了release
仓库,实际上应该同时要配置snapshot
仓库,maven会判断版本后面是不是带了-SNAPSHOT
,如果带了就发布到snapshots仓库,否则发布到release仓库
<?xmlversion="1.0"encoding="UTF-8"?> <projectxmlns="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.0https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.gjing</groupId> <artifactId>demo</artifactId> <version>1.0</version> <name>demo</name> <description>DemoprojectforSpringBoot</description> <properties> <java.version>1.8</java.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <distributionManagement> <repository> <!--ID可以随便写,但是要与maven的setting文件中一致--> <id>releases</id> <!--指向仓库类型为hosted(宿主仓库)的储存类型为Release的仓库----> <url>http://你nexus仓库的IP:8081/repository/me-release/</url> </repository> </distributionManagement> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-deploy-plugin</artifactId> <version>2.8.2</version> </plugin> </plugins> </build> </project>
3、maven配置setting文件
id一定要和项目pom文件中的一致
<servers> <server> <id>releases</id><!--对应项目pom文件中设置的--> <username>admin</username> <password>admin123</password> </server> </servers>
四、发布
如果使用的是IDEA开发工具可以直接在右边工具栏Maven工具点击deploy,也可以直接在命令行进入本项目根目录进行mvn deploy
这时nexus私服上也会出现我们的jar包
到此就发布成功啦
五、使用
让maven项目使用nexus作为远程仓库有两种方式,第一种是在项目的pom.xml中进行更改,让单个项目使用nexus仓库;另一种是通过修改maven的配置文件settings.xml进行更改,让所有项目都使用nexus仓库。我们这里采取第二种,只需要setting.xml就可以了。还有就是拉取jar的私服仓库地址只要写我们的仓库组就ok,因为在创建这个组的时候,里面已经包含了其它三个仓库
1、settings.xml文件
在maven的settings文件中找到mirrors
,加上我们组仓库的mirror
,url填写我们创建的组地址即可,id、name可以随便填写,mirrorOf可以和我写一样的
<mirrors> <mirror> <id>mynexus</id> <name>myselfnexusrepository</name> <url>http://xxx:8081/repository/me-group/</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors>
2、验证
只需要在其他项目中pom文件引入即可,成功引入且在项目中可以正常使用我们刚刚定义的工具类
感谢各位的阅读!关于“如何在Linux服务器通过Docker搭建Nexus私服”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
TikTok千粉号购买平台:https://tiktokusername.com/
TOP