1.<dependency> 元素定义了项目的相关依赖,其中有一些元素,各自的定义为:

  1. <groupId> : 项目或者组织的唯一标识,并且配置时生成路径也是由此生成的.如 <groupId>com.qmbb</groupId> 生成的相对路径为 com/qmbb   (生成的路径在本地的 ~./m2/repository 中)
  2. <artifactId> 项目的通用名称 (也会由此生成路径)
  3. <version> 项目的版本
  4. <packaging> 打包机制 如pom, jar, maven-plugin, ejb, war, ear, rar, par
  5. <name> && <url> pom提供的描述性的元素,和可阅读的名字 可不选
  6. <scope> 主要管理依赖的部署,现在有五个值
    • compile 缺省值,适用于所有阶段,会随着项目一起发布. 编译和打包的时候会将依赖存进去  (默认值)
      • 被依赖的Maven构件在compileruntimetest的时候都可以在classpath中找到
    • provided 类似于compile,期望JDK,容器或使用者会提供这个依赖 只能作用于编译和测试时,没有传递性
      • 被依赖的Maven构件在compiletest的时候都可以在classpath中找到,在runtime的时候由JDK容器提供
    • runtime 只在运行时使用, 如JDBC驱动,适用于运行和测试阶段
      • 被依赖的Maven构件在runtimetest的时候都可以在classpath中找到,在compile时不是必须的
    • test 只在测试时使用,用于编译和运行测试代码.不会随项目发布
      • 被依赖的Maven构件在test的时候可以在classpath中找到,在compile和runtime时不是必须的
    • system 类似于provided.需要显式提供包含依赖的jar,Maven不会在Repository中查找它
      • 被依赖的Maven构件在compiletest的时候都可以在classpath中找到,在runtime的时候必须显式JAR加入到classpath中
    • import 只使用在<dependencyManagement>中,表示从其它的pom中导入的<dependency>配置


2.maven的生命周期
  • 清除生命周期(删除整个构建目录,target目录)
    • mvn clean
  • 验证项目是否正确
    • validate
  • 编译项目的源代码
    • compile
  • 使用合适的单元测试框架运行测试。这些测试应该不需要代码被打包或发布 
    • test
  • 将编译好的代码打包成可分发的格式 ,如JAR,WAR,或者EAR 
    • package
  • 执行所有检查,验证包是有效的,符合质量规范 
    • verify
  • 安装包至本地仓库,以备本地的其它项目作为依赖使用 
    • install
  • 复制最终的包至远程仓库,共享给其它开发人员和项目(通常和一次正式的发布相关)
    • deploy


3.pom的文件结构
  • pom的模型版本
    •  <modelVersion>4.0.0</modelVersion>
  • 基本配置
    • Maven学习 ---  常见变量解释 && 问题解决
  • build配置
    • Maven学习 ---  常见变量解释 && 问题解决
  • 环境配置
    • Maven学习 ---  常见变量解释 && 问题解决
  • 其他信息等


4.多模块聚合结构
  • maven3开始支持maven项目的多模块(multi-modules)结构.这样的Maven项目成为聚合项目.通常由一个父模块若干个子模块构成.
  • 父模块必须以pom为打包类型
  • 父模块的pom中的<modules> 必须给出所有的子模块
  • 其中的每一个modules都是一个Maven项目
  • 示例
    • <groupId>com.quanminbb</groupId>
      <artifactId>qmxbb-platform</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <packaging>pom</packaging>
      <modules>
          <module>modules</module>
          <module>webapps</module>
      </modules>



相关文章:

  • 2021-04-02
  • 2021-11-30
  • 2021-08-17
  • 2021-10-10
  • 2021-05-13
  • 2022-01-03
  • 2021-09-18
  • 2021-06-07
猜你喜欢
  • 2021-04-17
  • 2022-12-23
  • 2021-12-31
  • 2021-08-10
  • 2021-05-29
  • 2021-06-11
  • 2021-12-27
相关资源
相似解决方案