文章目录环境变量mvn命令多线程编译或打包清除项目中依赖的所有包及缓存并重新下载明明有jar包 为什么每次都会生成.lastUpdated呢?常见的拉取失败的文件删除.lastUpdated和_remote.repositories_remote.repositories内容示例.lastUpdated内容示例settings.xml的优先级(重)bom机制bom原理bom和parent的区别?bom文件示例jar包没有pom文件有影响吗?去哪里下载maven文档环境变量环境变量里面添加MAVEN_HOMED:\apache-maven-3.2.5(maven软件所在地址)path添加;%MAVEN_HOME%\bin如果是win10及以上不要加分号。查看依赖树-表示可能还依赖其他包\-表示不依赖其他包了mvn dependency:tree#mvn dependency:tree-Dverbose# 会输出详细内容mvn dependency:tree-Dincludescom.alibaba:fastjson# 查看某个具体的依赖(这个不能模糊搜索不方便)mvn dependency:tree|findstr fastjson# 模糊搜索mvn命令-D # 后面加参数-P # 指定环境(支持多个) 如 -P test,prod-T # 多线程并行如 -T 4-Dmaven.test.skiptrue # 跳过测试(建议始终带着这个参数避免报错)多线程编译或打包加-T 数字即可。mvn package-T4-Dmaven.test.skiptrue# 4个线程并行打包mvn compile-T4-Dmaven.test.skiptrue# 4个线程并行打包清除项目中依赖的所有包及缓存并重新下载有时遇到各种奇怪的问题配置没错就是有问题可以尝试清除并重新下载命令mvn clean mvn dependency:purge-local-repository# 清除项目中依赖的所有的包及缓存并重新下载mvninstall明明有jar包 为什么每次都会生成.lastUpdated呢?是不是该jar包没有对应的pom文件呢?看了下果然是。机制是这样的当maven构建时会根据pom里的信息看当前jar是否是最新jar如果不是最新的那么就会尝试拉取最新的。如果连pom文件都没有怎么比对呢?会直接拉取最新的但是这个包远程仓库又没有所以就生成.lastUpdated文件了。常见的拉取失败的文件主要有这两个_remote.repositories.lastUpdated删除.lastUpdated和_remote.repositories1、文件夹里直接搜索删除# 相对慢一些2、cmd命令行删除d:\maven repository替换为实际仓库路径。 del /s /qd:\maven repository\*.lastUpdateddel /s /qd:\maven repository\*._remote.repositoriesdel命令路径用右斜杠。3、bash命令行删除/d/maven repository替换为实际路径。find/d/maven repository-name*.lastUpdatedfind/d/maven repository-name*._remote.repositoriesfind命令用左斜杠。_remote.repositories内容示例#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.#Mon Dec 22 10:53:35 CST 2025DmJdbcDriver18-1.0.jarDmJdbcDriver18-1.0.pom.lastUpdated内容示例#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice. #Mon Dec 22 10:48:55 CST 2025 http\://maven.aliyun.com/nexus/content/groups/public/.error http\://maven.aliyun.com/nexus/content/groups/public/.lastUpdated1766371735125settings.xml的优先级(重)例如如果用wrapper下载的版本不同每下载一个版本都要手动改该版本的配置文件吗?当然不用根据优先级直接设置用户级的配置文件即可。Maven的读取优先级是1、命令行-s指定的文件2、项目级.mvn/settings.xml3、用户级~/.m2/settings.xml(C:\Users\YourNamem2\settings.xml)4、安装目录级conf/settings.xml(Wrapper下载的那个)既然Wrapper下载的版本会变我们就不动第4项。我们直接修改第3项。bom机制bom机制利于版本统一管理。添加版本号properties!-- 添加如下内容 --spring.ai.version2021.0.5.0/spring.ai.version/properties添加bom管理dependencyManagementdependencies!-- 如果之前已有dependencyManagement标签只添加这段内容 --dependencygroupIdorg.springframework.ai/groupIdartifactIdspring-ai-bom/artifactIdversion${spring.ai.version}/versiontypepom/typescopeimport/scope/dependency/dependencies/dependencyManagement后续springAi相关的依赖都不用写版本号了统一受bom管理。bom原理拿到bom文件发现里面主要是dependencyManagement标签列出了所有相关的包及版本号。这样后续引入相关包不用写版本号了会以dependencyManagement的版本号为准。bom和parent的区别?是有不同的。bom只是控制版本号并不下载相关依赖。也就是说你要用这个包就得按我的版本号来。parent不但控制版本号还会将依赖的包都下载下来。bom文件示例以springAi 0.6.0作为示例?xml version1.0 encodingUTF-8?projectxmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdorg.springframework.ai/groupIdartifactIdspring-ai-bom/artifactIdversion0.6.0/versionpackagingpom/packagingnameSpring AI BOM/namedescriptionBill of Materials for Spring AI, manage all spring ai module versions/descriptionurlhttps://github.com/spring-projects/spring-ai/urllicenseslicensenameApache License, Version 2.0/nameurlhttps://www.apache.org/licenses/LICENSE-2.0/url/license/licenses!-- BOM核心所有AI组件版本统一锁定0.6.0 --dependencyManagementdependencies!-- 核心基础包 --dependencygroupIdorg.springframework.ai/groupIdartifactIdspring-ai-core/artifactIdversion0.6.0/version/dependencydependencygroupIdorg.springframework.ai/groupIdartifactIdspring-ai-openai/artifactIdversion0.6.0/version/dependency!-- 还有很多 略 --/dependencies/dependencyManagement!-- BOM无实际依赖不引入任何jar --dependencies//projectjar包没有pom文件有影响吗?见前面分析有影响。解决方案本地安装下这样才是最标准的做法。(安装方法见另一篇笔记)去哪里下载maven官网下载就很快如maven应用用这个地址(不同版本替换下版本号即可)https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zipmaven wrapper用这个地址(不同版本替换下版本号即可)https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar文档mvn--help#cmd下manmvn 或 mvn--help#linux环境apache官网文档http://maven.apache.org/一些在线书籍也很好:https://books.sonatype.com/mvnref-book/reference/running-sect-options.html#running-sect-define-prop