maven常用知识点

一、基础知识点

  1. 运行mvn clean install 会把依赖下载到本地仓库,并且先执行package命令,再执行install命令。将包安装到Maven本地仓库,供本地其他的Maven项目使用
  2. 打包的后的jar名是以artifactId + version (也可自己使用name,最后打包出来的包,name.war)
  3. Maven3 创建项目骨架命令:mvn archetype:generate
  4. 针对依赖可选时(两个数据库依赖时),< optional >标记依赖是否可选,只对当前项目产生影响,当其他项目依赖于次项目,此依赖不会传递。
  5. < scope > 依赖的范围:compile 、test 、provided 、runtime 、 system
  6. < exclusions >用来排除传递性依赖(比如传递依赖中有SNAPSHOT(快照不稳定版本))
  7. 查看当前项目已解析依赖:mvn dependency:list/tree
  8. 分析项目依赖: mvn dependency:analyze 该结果有两个重要的部分:
    Used undeclared dependencies 意指项目中使用到的,但没有显示声明的依赖。这种依赖存在潜在风险,这些依赖是通过直接传递依赖传递进来的,当升级直接依赖,这些依赖的版本也会跟着变化,有可能导致当前项目出错。
    Unused declared dependencies意指项目中未使用,但显示声明的依赖。
  9. Maven的生命周期是抽象的:项目的清理,编译,测试,打包,集成测试,验证,部署和站点生成等。具体实现是由插件实现的。
  10. maven deploy:将最终的包复制到远程仓库,供其他开发人员和maven项目使用
  11. 生命周期绑定插件,除了内置绑定之外,用户也可以自己选择将某个插件目标绑定到生命周期的某个阶段上,在pom文件的< plugins >里面指定
  12. maven在pom文件中添加插件时,应该一直显示地设定版本,不显示设定的话,maven3会自动设定release(最新的非快照版本),maven2则使用latest(最新的版本)
  13. 聚合:多模块的情况下在这些模块的上级中配置,实现一次命令构建多个模块
  14. 继承:在中配置要继承的父模块的坐标、等.在父pom中有< dependencyManagement >来帮助管理依赖来帮助管理插件
  15. 反应堆:在一个多模块项目中,反应堆是指所有模块组成的构建结构。对于单模块的项目,反应堆就是该模块本身。对于多模块来说,反应堆就包含了各模块之间的依赖和继承关系,从而能够自动计算出合理的模块构建顺序
  16. 私服:一种衍生出来的特殊的maven仓库;作用:降低*仓库负荷、节省外网带宽、加速maven构建、自己部署构件等;三种maven仓库管理软件:Archiva、Artifactory、Nexus;
  17. mvn命令跳过测试运行: mvn package -DskipTests
  18. mvn命令跳过测试编译、运行: mvn package -Dmaven.test.skip=true
  19. mvn运行单个测试用例:mvn test -Dtest = 类名(支持*匹配以及逗号指定多个测试用例)
  20. 生成测试覆盖率报告: mvn cobertura:cobertura(报告在target/site/cobertura下的index.html文件中)
  21. 测试报告在:target\surefire-reports中
  22. mvn package只打包主代码和资源文件,不包括测试代码
  23. 打包方式:在pom文件中的项目坐标下war(不写默认是jar包)
  24. <artifactId.version>1.0.0</artifactId.version>进行pom文件中的统一版本控制
  25. 本地插件库的位置在c盘的.m2\repository\org\apache\maven\plugins
  26. 分清版本管理和版本控制:版本管理是指项目的整体版本的演变过程管理,如从1.0.0-SNAPSHOT到1.0;版本控制是指借助版本控制工具追踪代码的每一个变更。
  27. maven版本号约定:<主版本>.<次版本>.<增量版本>-<里程碑版本>
    主版本表示项目的重大架构变更
    次版本表示较大范围的功能的增强和变化及修复
    增量版本一般表示重大BUG的修复
    里程碑版本表示某一个版本的里程碑,往往表示不是很稳定,还需要很多测试
  28. maven两个常用的内置属性 : b a s e d i r 项 目 根 目 录 , 即 包 含 p o m . x m l 文 件 的 目 录 ; {basedir}项目根目录,即包含pom.xml文件的目录; basedir项目根目录,即包含pom.xml文件的目录;{version}表示项目版本
  29. ${project.build.sourceDirectory}:项目的主源码目录,默认src/main/java
  30. ${project.build.testSourceDirectory}:项目的测试源码目录,默认src/test/java
  31. ${project.build.directory}:项目构建输出目录,默认target/
  32. ${project.build.outputDirectory}:项目主代码编译输出目录,默认target/classes
  33. ${project.build.testOutputDirectory}:项目测试代码编译输出目录,默认target/testclasses
  34. 可以通过,在项目的配置文件,java代码中可以使用${}对中的属性进行引用,不过需要开启属性过滤
  35. 构建maven项目时的maven-archetype(原型)-quickstart就是通过插件来实现的maven-archetype(原型)-plugin
  36. 常用插件列表:
    maven常用知识点
    maven常用知识点
    maven常用知识点
上一篇:Eclipse集成Maven打包时报错:[ERROR] Unknown lifecycle phase “mvn“. You must specify a valid lifecycle phase


下一篇:jar包都要钱?网上搜不到怎么办?