0
点赞
收藏
分享

微信扫一扫

Maven学习 ---  常见变量解释 && 问题解决


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



pom的文件结构


  • pom的模型版本
  • <modelVersion>4.0.0</modelVersion>
  • 基本配置
  • build配置
  • 环境配置
  • 其他信息等





多模块聚合结构



  • 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>






举报

相关推荐

0 条评论