• 初识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中, 双击即可完成相应的操作.
  • 相关阅读:
    springboot+fegin实现负载均衡
    springcloud实现微服务服务注册、负载均衡
    spring boot服务状态监控+shell远程连接服务
    微服务基础概念及相关技术组件
    集群分布式基础概念及了解
    http第一章-telnet测试
    spring整合netty

    springMVC+spring+JPA配置文件
    CAN信号值解析
  • 原文地址:https://www.cnblogs.com/binwenhome/p/12983210.html
Copyright © 2020-2023  润新知