docker搭建maven私服(nexus3),整合springboot上传下载依赖
一、前言
我们在JavaWeb开发中必不可少的就是jar包管理-maven
,在没有maven之前,都是自己手动下载jar包导入到项目中,非常的繁琐。
maven出现之后,又迎来新的问题,对于仓库里人家发布的都可以引用下载,但是公司自己内部写的jar包,不想让外人看到,自己公司来回粘贴复制,非常的繁琐,版本维护起来也是十分头疼!
这时Nexus Repository
出现了,现在主流的还是nexus3
,所以今天小编带大家一起搭建使用一下。当然公司也必须有一个自己的私服,来存放公司的技术沉淀,提高开发效率!
网上教程看了很多,但是基本都是教怎么上传到私服,从私服拉取依赖就没有写!
本文从上传到拉去面面俱到,对你有帮助,一键三连哈!!
二、介绍
nexus3
是一种特殊的远程仓库,一般部署在公司服务器或者局域网内的仓库服务,私服代理广域网上的远程仓库,供公司的Maven用户使用。
当Maven依赖需要依赖的时候,它从私服请求,如果私服上不存在依赖,则从外部的远程仓库下载,缓存在私服上之后,再为Maven的下载请求提供服务。
我们还可以把一些无法从外部仓库下载到的构件上传到私服上。
总的准则:无论私服有没有,我们本地都是使用私服提供的!
三、优点
- 引入速度提高
- 加速Maven构建
- 方便管理
- 稳定性高
- 降低中央仓库的负荷
- 隐私性高
四、docker构建运行
1. 创建挂载目录
mkdir /mydata/nexus/nexus-data -p
给权限:
chmod 777 /mydata/nexus/nexus-data/
2. 启动nexus
docker run -d -p 8081:8081 --name nexus -v /mydata/nexus/nexus-data:/nexus-data sonatype/nexus3
3. 获取密码
我们看到密码可以在容器内获取:
默认用户是,唯一生成的密码可以在卷内的文件中找到。有关卷的信息,请参阅持久数据。
admin admin.password
由于我们挂载了数据文件,主要在宿主机上查看即可!
切换到目录:
cd /mydata/nexus/nexus-data/
查看密码:
cat admin.password
密码:206d5b6b-cc58-403f-af03-e5c8772a803a
3. 访问页面
ip+端口访问:http://192.168.239.132:8081/
4. 登录
用户:admin
密码:挂载目录下的admin.password文件内
五、nexus配置和解释
1. 继续初始化
2. 编写新密码
3. 配置匿名访问
由于匿名访问有安全性问题,在公司不是还是禁用为好!
4. 完成
5. 仓库名称类型
我们可以看到有三种类型:
仓库类型 | 说明 |
---|---|
proxy | 代理到远程仓库,默认国外,可以修改为国内阿里云代理 |
group | 存放:通过 Nexus 获取的第三方 jar 包 |
hosted | 存放:本团队其他开发人员部署到 Nexus 的 jar 包 |
还有一些仓库名称:
仓库名称 | 说明 |
---|---|
maven-central | Nexus 对 Maven 中央仓库的代理 |
maven-public | Nexus 默认创建,供开发人员下载使用的组仓库 |
maven-releasse | Nexus 默认创建,供开发人员部署自己 jar 包的宿主仓库要求 releasse 版本(生产版本) |
maven-snapshots | Nexus 默认创建,供开发人员部署自己 jar 包的宿主仓库要求 snapshots 版本(测试版本) |
6. 调整代理地址
点击maven-central
进入详情:
把代理地址换为阿里云的:
https://maven.aliyun.com/repository/public
往下滑到最后点击保存!
7. 新建用户和仓库
关于很多教程都是新建用户和仓库,小编这里就使用admin和自带的仓库了!
一般的小公司够了,公司有一定规模在新建吧!!
六、settings.xml配置
1. 配置maven上传信息
我们打开本地的settings.xml文件,把私服的地址和用户配置上去!
<servers>
<server>
<id>maven-public</id>
<username>admin</username>
<password>123456</password>
</server>
<server>
<id>maven-snapshots</id>
<username>admin</username>
<password>123456</password>
</server>
<server>
<id>maven-releases</id>
<username>admin</username>
<password>123456</password>
</server>
</servers>
2. 配置从私服下载
<profiles>
<profile>
<id>nexus-own</id>
<!-- 远程仓库列表 -->
<repositories>
<repository>
<id>maven-public</id>
<name>Nexus Central</name>
<!-- 虚拟的URL形式,指向镜像的URL-->
<url>http://192.168.239.132:8081/repository/maven-public/</url>
<layout>default</layout>
<!-- 表示可以从这个仓库下载releases版本的构件-->
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
<repository>
<id>maven-snapshots</id>
<name>Nexus Central</name>
<!-- 虚拟的URL形式,指向镜像的URL-->
<url>http://192.168.239.132:8081/repository/maven-snapshots/</url>
<layout>default</layout>
<!-- 表示可以从这个仓库下载snapshot版本的构件 -->
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>maven-public</id>
<name>Nexus Central</name>
<url>http://192.168.239.132:8081/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<!--需要激活 <profile>中的ID才生效-->
<activeProfile>nexus-own</activeProfile>
</activeProfiles>
七、springboot项目配置
1. 父项目pom文件
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<layers>
<enabled>true</enabled>
</layers>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.10.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<parameters>true</parameters>
</configuration>
</plugin>
</plugins>
</build>
<!--打包上传maven私服-->
<distributionManagement>
<repository>
<!--id的名字可以任意取,但是在setting文件中的属性<server>的ID与这里一致-->
<id>maven-releases</id>
<!--指向仓库类型为host(宿主仓库)的储存类型为Release的仓库-->
<url>http://192.168.239.132:8081/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>maven-snapshots</id>
<url>http://192.168.239.132:8081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
2. deploy上传私服
双击deploy,上传私服!
3. 私服查看
一共上传了两次,都在私服中存在!
4. 私服依赖在本地引用
我们新建一个springboot项目,然后引入依赖:
要勾选Projects下面的配置,不然无法引入依赖!
5. 测试使用
新项目可以使用依赖中的注解:
八、总结
经过半天的测试加编写,终于完成,对于私服有了更深的认识!
私服是每个公司必须要有的,当然也是我们必须要掌握的,小编整理出来,方便大家学习!
优点前面都说了,这里就不多说了!
前人种树后人乘凉嘛,对你有帮助,还请不要吝啬你的发财小手点点关注哈!
关注小编的微信公众号,一起交流学习!文章首发看哦!
docker搭建maven私服(nexus3),整合springboot上传下载依赖的更多相关文章
- 【原创】Docker 搭建Maven私服nexus 3.17初始密码登录不上问题/admin登陆不上问题
[原创-转载请说明出处] 博主最近在虚拟机中搭建Maven私服,遇到了一个关键问题就是nexus 3.17版本后初始密码不是admin/admin123. 对于nexus不熟悉的我弄了很长时间!!!心 ...
- fastDFS与java整合文件上传下载
准备 下载fastdfs-client-java源码 源码地址 密码:s3sw 修改pom.xml 第一个plugins是必需要的,是maven用来编译的插件,第二个是maven打源码包的,可以不要. ...
- docker 搭建maven 私服
# 搜索镜像 docker search nexus; #拉取nexus镜像docker pull sonatype/nexus; #运行 -id 创建守护式容器--privileged=true 授 ...
- CKEditor和CKFinder整合实现上传下载功能
CKEditor与CKFinder整合并实现文件上传功能 事先说明:此整合的是java版本号的, 用到的有:jsp + ckeditor + ckfinder (没有servlet 及其他框架技术) ...
- springboot上传下载文件
在yml配置相关内容 spring: # mvc: throw-exception-if-no-handler-found: true #静态资源 static-path-pattern: /** r ...
- 使用Docker搭建maven私服 及常规使用方法
安装-登录-配置 下载镜像 docker pull sonatype/nexus3 运行 docker run -d -p 9998:8081 --name nexus --restart=alway ...
- 基于Docker搭建Maven私服Nexus,Nexus详解
备注:首先在linux环境安装Java环境和Docker,私服需要的服务器性能和硬盘存储要高一点,内存不足可能到时启动失败,这里以4核8GLinux服务器做演示 一:基于Docker安装nexus3 ...
- nexus搭建maven私服及私服jar包上传和下载
nexus搭建maven私服及私服jar包上传和下载 标签: nexus管理maven库snapshot 2017-06-28 13:02 844人阅读 评论(0) 收藏 举报 分类: Maven(1 ...
- CentOS7-Docker 搭建Maven私服
使用Docker搭建Maven私服 前言本文主要介绍,使用Docker创建一个nexus私服,然后编写一个Library,上传到私服,然后使用demo工程依赖. 本文不对Maven.Nexus.私服等 ...
- springboot简易上传下载
1.导入上传下载依赖: <dependency> <groupId>commons-fileupload</groupId> <artifactId>c ...
随机推荐
- 【转】Linux文件权限
转载一篇写得非常详细的linux文件权限,方便自己查阅! 转载来源:https://www.cnblogs.com/keyi/p/8124841.html ---------------------- ...
- Mysql InnoDB多版本并发控制MVCC
参考书籍<mysql是怎样运行的> 系列文章目录和关于我 一丶为什么需要事务隔离级别 mysql是一个客户端/服务断软件,对于同一个服务器来说,可以有多个客户端进行连接,每一个客户端进行连 ...
- 2022春每日一题:Day 38
题目[USACO17JAN]Promotion Counting P 从根节点dfs一遍,树状数组维护进入和出去时这个节点的贡献,一减就是答案 代码: #include <cstdio> ...
- 自学 TypeScript 第一天 环境开发配置 及 TS 基本类型声明
前言: 自学第一天,什么是TS ,为什么要用 TS TS 全程 Typed JavaScript at Any Scale 解释起来就是 添加了类型系统的 JavaScript, 是 JavaScr ...
- 【RPC和Protobuf】之RPC入门
一,概念 RPC:Remote procedure call(远程过程调用),分布式系统中不同节点之间流行的通信方式 服务端: 注: 1.执行下面的代码之后,会相应的启动一个tcp进程 C:\User ...
- polkit(ploicykit)特权提升漏洞解决方案
一.[概述] polkit 的 pkexec 存在本地权限提升漏洞,已获得普通权限的攻击者可通过此漏洞获取root权限,漏洞利用难度低. pkexec是一个Linux下Polkit里的setuid工具 ...
- 【OpenStack云平台】openstack命令行管理之环境变量设置
上传镜像(glance组件) glance 可以使用以下参数: ps:这些参数不是100%都需要的我们在上传镜像更加我们需求选择相对应的参数就好了 –id <IMAGE_ID> #镜像的I ...
- 【云原生 · Kubernetes】Kubernetes简介及基本组件
1.Kubernetes简介 Kubernetes是Google开源的容器集群管理系统,其提供应用部署.维护. 扩展机制等功能,如图1.3所示.利用Kubernetes能方便地管理跨机器运行容器化的应 ...
- Android 按钮自定义背景后点击没有动画效果
只需要在按钮中添加属性就可以了 android:foreground="?selectableItemBackground"
- C温故补缺(六):C反汇编常用的AT&Tx86语法
C语言反汇编用到的AT&T x86汇编语法 参考:CSDN1,CSDN2 默认gcc -S汇编出的,以及反汇编出的,都是AT&T x86代码,可以用-masm=intel指定为inte ...