初识Maven(一)

为什么要使用Maven

  1. 即使不使用Maven我们仍然可以进行B/S结构项目的开发, 从表述层, 业务逻辑层到持久化层再到数据库都有成熟的解决方案——不使用Maven我们一样可以开发项目, 所以我们应该看一下实际需求中有哪些技术的不足.

  2. 解决jar包的大量重复
    • 在JavaEE开发领域, 有大量的第三方框架和工具可以供我们使用, 要使用这些jar包最简单的方法就是复制粘贴到WEB-INF目录下的lib目录下
    • 但是这会导致每次创建一个新的工程就需要将jar包重复复制到lib目录下, 从而造成工作区中存在大量重复的文件.
    • 而使用Maven后每个jar包只在本地仓库中保存一份, 需要jar包的工程只需要维护一个文本形式的jar包的引 用——我们称之为"坐标", 不仅极大的节约了存储空间, 让项目更轻巧, 更避免了重复文件太多而造成的混乱.
  3. jar包之间的依赖关系
    • jar包往往不是孤立存在的, 很多jar包都需要在其他jar包的支持下才能够正常工作, 我们称之为jar包之间的依赖关系.
    • 啊而引入Maven后, Maven就可以替我们自动的将当前jar包所依赖的其他所有jar包全部导入进来, 无需人工参与.
  4. 处理jar包之间的冲突
    • 使用Maven就可以自动的处理jar包之间的冲突问题, 因为Maven中内置了两条依赖原则: 最短路径者优先和先声明者优先
  5. 获取第三方jar包
    • 只需要在你的项目中以坐标的方式依赖一个jar包, Maven就会自动从中央仓库进行下载, 并同时下载这个jar包所依赖的其他jar包.
  6. 将一个项目拆分成多个工程模块.
    • 大型项目已经不可能通过package结构来划分模块, 所以要将项目拆分.
    • 利用maven的依赖管理机制, 工程拆分后就可以相互调用和访问.
      • 上层的依赖于下层, 所以将jar包放在环境模块中.
  7. 实现项目的分布式部署.
    • 在实际生产环境中, 项目规模增加到一定程度后, 可能每个模块都需要运行在独立的服务器上, 我们称之为分布式部署, 这里同样需要用到Maven.

Maven是什么

  1. 自动化构建工具
    • Maven是一款自动化构建工具, 专注服务于Java平台的项目构建和依赖管理.
  2. 构建的概念
    • 构建并不是创建, 我们从三个层面看
    • 纯Java代码: .java的源文件要通过编译成.class字节码文件才能执行.
    • Web工程: 当我们需要通过浏览器访问Java程序时, 就必须将包含Java程序的Web工程编译的结果部署到服务器上的指定目录, 并启动服务器.
    • 实际项目: Web工程中除了Java程序, 图片等静态资源之外, 还包括第三方框架的jar包以及各种各样的 配置文件, 所有这些资源都必须按照正确的目录结构部署到服务器上, 项目才可以运行.
    • 综上所述, 构建就是我们以编写的代码等资源, 去生产出一个可运行的项目的过程.
  3. 构建的步骤
    • 清理: 删除以前的编译结果, 为重新编译做好准备.
    • 编译: 将Java源程序编译为字节码文件.
    • 测试: 针对项目中的关键点进行测试. 确保项目在迭代开发过程中关键点的正确性.
    • 报告: 在每一次测试后以标准的格式记录和展示测试结果.
    • 打包: 将一个包含诸多文件的工程封装为一个压缩文件用于安装或部署, Java工程对应jar包,Web工程对应war包.
    • 安装: 在Maven环境下特指将打包的结果 --— jar包或war包安装到本地仓库.
    • 部署: 将打包的结果部署到远程仓库或将war包部署到服务器上运行.
  4. 自动化构建
    • maven可以自动的从构建过程的起点一直执行到终点.

环境搭建

  1. 解压Maven的核心程序
  2. 配置环境变量
    • M2_HOME: maven的安装地址.
    • Path: %M2_HOME%in
  3. 检查是否安装
  4. 配置本地仓库
    • maven默认的本地仓库: ${user.home}/.m2/repository.
    • 自定义本地仓库, 在maven安装目录下confsetting.xml中配.
    • setting标签中
    • 修改下载源: 用阿里的镜像源 - mirrors标签下
          <mirror>
              <id>nexus-aliyun</id>
              <name>Nexus aliyun</name>
              <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
              <mirrorOf>central</mirrorOf>
          </mirror>
    • 在profiles中注明jdk版本
          <profile>
            <id>jdk-1.8</id>
      
            <activation>
              <activeByDefault>true</activeByDefault>
              <jdk>1.8</jdk>
            </activation>
      
            <properties>
                <maven.compiler.source>1.8</maven.compiler.source>
                <maven.compiler.target>1.8</maven.compiler.target>
                <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
            </properties>
          </profile>

创建Maven项目

  •  New Project -> Maven
    • 在settings -> Maven中改用自己的maven和setting.xml, 修改下图内容.
  • maven工程结构
    • main目录放主程序.
    • test目录放测试程序
    • java目录放源代码和文件
    • resources存放配置文件和资源文件
    • pom.xml为核心配置文件, 在里面导入依赖.
  1. maven的几个基本命令
    • 运行maven命令时, 一定要在cmd中进入pom.xml文件所在的目录.
    • mvn compile
      • 编译main目录下, 将Java源代码编译成.class字节码文件.
      • 会自动创建target目录并放进去.
    • mvn clean
      • 将以前编译得到的旧的class字节码文件删除.
      • 其实是自动删除target目录.
    • mvn clean compile
      • 先删除再编译.
    • mvn test-compile
      • 编译test目录下java文件
    • mvn package
      • 将字节码文件打包, 动态web工程打war包, Java工程打jar包
    • mvn source:jar
      • 将java源代码打包
    • mvn install
      • 将项目生产的jar包放在仓库中, 以便别的模块调用.
  2. IDEA中的使用
    • 右侧的maven中, 双击即可完成相应的操作.
原文地址:https://www.cnblogs.com/binwenhome/p/12983210.html