Maven 基础知识总结笔记 (二),行业寒冬


自定义属性:

自定义属性是用的最多的,等同于java中的变量,方便统一维护。


内置属性:

其实在maven项目中,就有很多内置的属性。

${version}属性:就是调用当前工程的version。

${basedir}属性:获取项目根目录路径。

其实它们前面是有个project,project是可以省略的。


Setting属性:

使用maven配置文件setting.xml中的标签属性,用于动态配置。

例如:${settings.localRepository}


Java系统属性和环境变量属性:

读取Java系统属性:

例如:${user.home}

当然还有系统查询的方式:

例如:mvn help:system

在这里插入图片描述

通过mvn help:system命令,得到两种属性:系统属性和环境变量属性。

下面这个就是系统属性:

在这里插入图片描述

环境变量属性:

例如:${env.JAVA_HOME}

在这里插入图片描述

5. Maven 版本管理

===========================================================================


SNAPSHOT(快照版本):

  • 快照版本就算是测试阶段的版本。

  • 快照版本会随着开发的进展不断更新。

RELEASE(发布版本):

  • 项目开发到进入阶段里程碑后,向团队外部发布较为稳定的版本,即便进行功能的后续开发,也不会改变当前发布版本内容,这种版本成为发布版本。

上面这两种是比较常用的,也有些企业起的名字不同,有rc,m等等一系列,这倒不用在意。

在这里插入图片描述


工程版本号的约定:

在这里插入图片描述

6. Maven 外部资源加载 属性值

=================================================================================


我们设置jdbc的一些信息时,常存储在jdbc.properties里面:

在这里插入图片描述

但是我们想也让这里面的值,使用属性值来代替,也是可以的(也就是想让外部文件也使用当前pom.xml设置的属性值):

在这里插入图片描述

这就分为:配置资源文件对应的属性和测试资源对应的属性,也就是main下的resources和test下的resources。


配置资源文件对应的属性(使用resources标签):

第一步:我们设定好属性值:

在这里插入图片描述

在这里插入图片描述

第二步:在build标签内设定resources标签,负责指定文件路径目录:

在这里插入图片描述

filtering属性作用:开启加载pom属性过滤功能,就是设置为true才能被加载到。

最后,我们install一下,在jar包中查看jdbc.properties是否配置成功了。

在这里插入图片描述

最后,我们可以通过内置属性,来修改一下:

在这里插入图片描述


配置测试资源的对应信息(使用testResources):

其实本质上没啥区别,就是标签换成了testResources 和 testResource,注意路径要改成test,仅此而已。

在这里插入图片描述

7. Maven 多环境开发配置(多环境兼容)

=====================================================================================


我们所建成的项目,在当前能够运行成功,但如果放置到服务器上就有可能环境不兼容等,换句话说,每次放到新服务器都要配置一下环境值等等。

定义这种多环境开发,Maven也是可能做的,还是去聚合工程配置pom.xml文件。在这里插入图片描述

光配置好肯定不行,我们在运行时,还要指定我们运行哪一个环境的id,因此执行命令的时候需要我们,添加参数!

因此,我们执行mvn指令时,要添加-p:

例如:mvn install -P [指定的环境id]

在这里插入图片描述


上面还可以通过使用 activation 和 activeByDefault 默认方式来启动环境配置:

在这里插入图片描述

8. Maven 跳过测试

===========================================================================


真正开发中,测试是不能跳过的!

在某些特殊情况下,我们通过跳过来检查那一部分出现问题或者来节约时间等等。


方案一:

idea的跳过测试:

在这里插入图片描述


方案二:

通过命令来跳过测试环节:

mvn install -D skipTests

-D的作用是指定Java全局属性。


方案三:(针对插件而言)

我们设置插件后,可以在configuration标签内设置skipTests标签,来决定该插件测试时跳不跳过。

在这里插入图片描述


对于插件而言,我们想要哪一个测试,哪一个不需要测试,也是可以直接来定义的如下:

在这里插入图片描述

9. Maven 私服(nexus)

================================================================================

9.1 nexus 安装 和 启动



私服有很多,不过现在比较常用的是nexus私服,平时我们打的游戏也是有私服区分的。

私服在开发中很重要!

平时我们下载插件jar包等等都是直接在中央Maven仓库下载,那是公共的。

如果我们开发项目中,每一个负责的工程模块不同,需要彼此模块时,总不能通过u盘拷贝,飞秋发送啥的来操作。这个时候就需要私服,我们将项目打包到私服,谁用,谁拿,一样原理。

私服和中央仓库是分离开的!


nexus 私服服务器下载地址:

https://help.sonatype.com/repomanager3/product-information/download

解压后,有两个目录分别对应如下:

在这里插入图片描述


启动配置如下:

执行 nexus /run nexus命令:

启动后,看到如下图片,我们就可以去http://localhost:8081网页下查看了。

在这里插入图片描述

http://localhost:8081/ 网页如下,看到当前页面表示我们启动成功了:

在这里插入图片描述


如果我们想要修稿一些nexus基础配置信息,如端口地址等等,需要去etc下修改nexus-default.properties文件中的内容:

在这里插入图片描述

还有一个nexus服务器启动对应的配置信息,在bin/目录下的nexus.vmoptions文件中配置。

在这里插入图片描述


在这里插入图片描述

9.2 私服的仓库分类 与 手动上传组件


9.2.1 仓库分类


私服有多种类型的仓库,分别对应不同的作用。

在这里插入图片描述

对应上图的三个不同类型的仓库:宿主仓库hosted,代理仓库proxy和仓库组group。


宿主仓库hosted:

  • 保存无法从中央仓库获取的资源,如自主研发的项目,第三方非开源项目(例如:oracle , 因为第三方非开源在maven中央仓库是找不到的!)

  • 宿主仓库就是上面在仓库组中的仓库。


代理仓库proxy:

  • 代理远程仓库,通过nexus方位其他公共仓库(中央仓库或镜像)。

  • 就对应上图的黄色仓库,像spring-context这样的资源,我们一般不可能在自己的仓库中存放,我们可以间接的通过代理仓库proxy从中央仓库获取。


仓库组group:

  • 将若干个仓库组成一个群组,简化配置。

  • 仓库组不能保存资源,属于设计性仓库。

  • 仓库组的作用就是如果一个项目同时需要多个宿主仓库中的程序,那么我们就可能通过仓库组给它们划分,这样我们就直接访问仓库组,进而访问所有要访问的仓库信息。

9.2.2 各个仓库的使用


首先,我们进入nexus主页面,点击右上角sign in登录,密码会提示告诉你放到你文件中的一个.password文件中。

登录后,点击左侧的Browse,就可以看到很多不同类型的仓库了:在这里插入图片描述


创建一个hosted宿主仓库:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

这样,一个宿主仓库就创建完成。之后我们在将宿主仓库放到仓库组中。

在这里插入图片描述

在这里插入图片描述

这样创建仓库和添加仓库组等等就完成了。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
img

2021年Java中高级面试必备知识点总结

在这个部分总结了2019年到目前为止Java常见面试问题,取其面试核心编写成这份文档笔记,从中分析面试官的心理,摸清面试官的“套路”,可以说搞定90%以上的Java中高级面试没一点难度。

本节总结的内容涵盖了:消息队列、Redis缓存、分库分表、读写分离、设计高并发系统、分布式系统、高可用系统、SpringCloud微服务架构等一系列互联网主流高级技术的知识点。

目录:

(上述只是一个整体目录大纲,每个点里面都有如下所示的详细内容,从面试问题——分析面试官心理——剖析面试题——完美解答的一个过程)

部分内容:

对于每一个做技术的来说,学习是不能停止的,小编把2019年到目前为止Java的核心知识提炼出来了,无论你现在是处于什么阶段,如你所见,这份文档的内容无论是对于你找面试工作还是提升技术广度深度都是完美的。

不想被后浪淘汰的话,赶紧搞起来吧,高清完整版一共是888页,需要的话可以点赞+关注

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
img

[外链图片转存中…(img-XjnHZroj-1712655917095)]

(上述只是一个整体目录大纲,每个点里面都有如下所示的详细内容,从面试问题——分析面试官心理——剖析面试题——完美解答的一个过程)

[外链图片转存中…(img-1ukwjcml-1712655917095)]

部分内容:

[外链图片转存中…(img-aDxiYKOO-1712655917096)]

[外链图片转存中…(img-uYWjxHls-1712655917096)]

[外链图片转存中…(img-i1sAR4US-1712655917096)]

对于每一个做技术的来说,学习是不能停止的,小编把2019年到目前为止Java的核心知识提炼出来了,无论你现在是处于什么阶段,如你所见,这份文档的内容无论是对于你找面试工作还是提升技术广度深度都是完美的。

不想被后浪淘汰的话,赶紧搞起来吧,高清完整版一共是888页,需要的话可以点赞+关注

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-9Ar8sj9j-1712655917097)]

  • 29
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值