当前位置: 首页 > news >正文

2024最新 maven 高级用法 (概念自己百度)

#B站看视频学不到的知识#

目录

maven 定义和概念

  maven是java构建工具。maven通过远程仓库获取和更新jar包,通过坐标来管理jar文件。

maven核心配置文件

 config目录下settings.xml 文件,核心配置详解:

localRepository  本地仓库地址:

repositories  远程仓库地址()

servers  用来配置远程仓库的登录信息

mirrors 镜像

profiles 节点(通过不同节点配置不同环境 比如 dev sit prod)

idea工具集成maven

dependency 依赖错误的问题:

先看本地仓库有没有对应的jar文件,

maven加载包的顺序:

        先根据左边去本地仓仓库找,坐标文件夹不存在会自动创建。

 本地找不到的情况下回去远程仓库找。

远程仓库找不到的情况下会出现两个 .lastUpdated 文件。

重点,重点,重点: 仓库地址没错,尝试多次任无法下载的时候,需要把.lastUpdated 删掉再进行下载。

这里备上快速删除仓库下所有.lastUpdated 文件的脚本:

chcp 65001
@echo off
set REPOSITORY_PATH=E:\maven\repository
for /f "delims=" %%i in ('dir /b /s "%REPOSITORY_PATH%\*lastUpdated*"') do (del /s /q %%i
)
for /f "delims=" %%i in ('dir /b /s "%REPOSITORY_PATH%\aether-*-in-progress"') do (del /s /q %%i
)
for /f "delims=" %%i in ('dir /b /s "%REPOSITORY_PATH%\_remote.repositories"') do (del /s /q %%i
)
for /f "delims=" %%i in ('dir /b /s "%REPOSITORY_PATH%\_maven.repositories"') do (del /s /q %%i
)
pause

maven依赖传递

maven远程仓库和私服

        常见的远程/中央仓库:

        maven官方仓库

  1. http://mvnrepository.com/

  2. 3. http://repo1.maven.org/maven2

     阿里云仓库:云效-Maven公共仓库

        https://maven.aliyun.com/nexus/content/groups/public

私服就是自己搭一个仓库服务 nexus。

jar包定义的一些规范:

2.1 groupId命名规范

含义解读:groupId定义了项目所在的组,组通常和该项目所在的公司和组织有关。

格式规范:
格式一:域名.项目隶属的组织名(公司名)
格式二:域名.项目隶属的组织名(公司名).项目名称(部门名)

2.2 artifactId命名规范


含义解读:artifactId用来标识项目的名称,不要带version等无关信息。
格式规范:使用小写字母准确描述,单词之间可以-进行分割。
命名示例:apache公司的tomcat项目中,artifactId是tomcat;再如常用构件spring-beans。


2.3 version命名规范


含义解读:项目当前的版本。
格式规范:建议jar包版本采用三位数字来标识,即主版本号.次版本号.修订号——major.minor.revison 。

注意事项:

  • 每位从0依次到 99,尽量不要跳跃,数字不可超过 99。
  • 项目初始版本可以为 0.1.0,也可以为1.0.0,开发人员可灵活处理。比如“1.0.0-SNAPSHOT”,其中SNAPSHOT的意思是”快照”,说明该项目处于开发中,是不稳定的版本。

2.4发布规范


线下环境发布jar包要使用SNAPSHOT版本(便于修改),线上必须用release版本。 若正式环境中允许依赖snapshot版本。今天依赖某个snapshot版本的第三方库成功构建了,明天再构建时可能就会失败,因为第三方可能已经更新了它的snapshot库。再次构建时,Maven会去远程repository下载snapshot的最新版本,构建的成功性就很难保证了。
SNAPSHOT版本可以由开发分支发布,release版本必须由指定的分支发布(比如master分支)。
release版本不允许覆盖升级。如当前版本:1.1.3,必须升级到下一个合理的版本号:1.1.4 或 1.2.0 或 2.0.0才能发布成功。
本地仅可install jar包到本地仓库,禁止deploy jar包到远程仓库;远程仓库必须通过公司指定的平台才可以发布。这样的规定能带来很多益处。首先,可避免没有提交的代码被打包到远程仓库;其次,通过平台可以在发布jar包的过程中对代码进行扫描、发布成功后发布通知等,这些功能在本地环境是无法实现的。
环境隔离。线上私服和线下私服隔离;线下不同的环境对应的私服也要隔离;环境隔离可避免不同环境之间的jar包互相影响,有利于并行开发和并行测试;通常私服之间可能存在代理关系,当对应的私服拉取不到相关依赖时会从代理出进行拉取;代理关系可提升依赖查找的成功率,但也会使开发环境变的复杂;
发布后维护版本更新历史(ChangeLog或release notes),维护的主要内容有:版本说明、概要,版本的主要Changes,修复的Issues/Bugs,发布时间等。

http://www.lryc.cn/news/329876.html

相关文章:

  • 【C++】每日一题 12 整数转罗马数字
  • C++学习建议
  • python实现泊松回归
  • 软件测试-进阶篇
  • Google人才选拔的独特视角
  • OSPF---开放式最短路径优先协议
  • 云数据仓库Snowflake论文完整版解读
  • Redis中是如何初始化服务器的?
  • 深度学习训练过程中,常见的关键参数和概念讲解
  • 如何提高小红书笔记的收录率?
  • 思通数科:利用开源AI能力引擎平台打造企业智能搜索系统
  • Nginx配置其实很简单
  • Redis中的serverCron函数(一)
  • python保存中间变量(学习笔记)
  • CTF wed安全(攻防世界)练习题
  • 计算机网络链路层
  • VUE3——reactive对比ref
  • 广场舞团系统的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)
  • 经典永不过时 Wordpress模板主题
  • QT布局管理和空间提升为和空间间隔
  • Yolo 自制数据集dect训练改进
  • vlan间单臂路由
  • day4 linux上部署第一个nest项目(java转ts全栈/3R教室)
  • 学会这几点,是搭建产品知识库的关键
  • MySql 常用的聚合函数总结
  • Charles for Mac 强大的网络调试工具
  • 【数据结构】优先级队列——堆
  • 【力扣】45.跳跃游戏Ⅱ
  • containerd使用了解
  • gateway 分发时若两个服务的路由地址一样,怎么指定访问想要的服务下的地址