• 02 Maven 入门使用


    Maven 入门使用

    1. Maven 项目工程目录约定

    Project
      |-src
      |   |-main
      |   |  |-java        —— 存放项目的 .java 文件
      |   |  |-resources   —— 存放项目资源文件,如 spring、hibernate 配置文件
             |-webapp      —— webapp 目录是 web 工程的主目录
                |-WEB-INF
                  |-web.xml
      |   |-test
      |      |-java        —— 存放所有测试 .java 文件,如 JUnit 测试类
      |      |-resources   —— 测试资源文件
      |-target             —— 目标文件输出位置例如 .class、.jar、.war 文件
      |-pom.xml            —— Maven 项目核心配置文件
    

    2. 常用的 Maven 命令

    (1) compile

    compile 是 Maven 工程的编译命令,作用是将 src/main/java 下的文件编译为 class 文件输出到 target 目录下。

    (2) test

    test 是 Maven 工程的测试命令,会执行 src/test/java 下的单元测试类。

    (3) clean

    test 是 Maven 工程清理命令,执行 clean 会删除 target 目录的内容。

    (4) package

    package 是 Maven 工程的打包命令,对于 java 工程执行 package 打成 jar 包,对于 web 工程打成 war 包。

    (5) install

    install 是 Maven 工程的安装命令,执行 install 将 Maven 打成 jar 包或 war 包发布到本地仓库。

    3. 生命周期

    3.1 三套生命周期

    Maven 对项目构建过程分为三套相互独立的生命周期,请注意这里说的是“三套”,而且“相互独立”,这三套生命周期分别是:

    Clean Lifecycle 在进行真正的构建之前进行一些清理工作。
    Default Lifecycle 构建的核心部分,编译,测试,打包,部署等等。
    Site Lifecycle 生成项目报告,站点,发布站点。

    3.2 生命周期的阶段

    3.2.1 clean 生命周期的阶段

    1. pre-clean 执行一些需要在 clean 之前完成的工作
    2. clean 移除所有上一次构建生成的文件
    3. post-clean 执行一些需要在 clean 之后立刻完成的工作

    3.2.2 defalut 生命周期的阶段

    1. validate
    2. generate-sources
    3. process-sources
    4. generate-resources
    5. process-resources 复制并处理资源文件,至目标目录,准备打包。
    6. compile 编译项目的源代码。
    7. process-classes
    8. generate-test-sources
    9. process-test-sources
    10. generate-test-resources
    11. process-test-resources 复制并处理资源文件,至目标测试目录。
    12. test-compile 编译测试源代码。
    13. process-test-classes
    14. test 使用合适的单元测试框架运行测试。这些测试代码不会被打包或部署。
    15. prepare-package
    16. package 接受编译好的代码,打包成可发布的格式,如 JAR 。
    17. pre-integration-test
    18. integration-test
    19. post-integration-test
    20. verify
    21. install 将包安装至本地仓库,以让其它项目依赖。
    22. deploy 将最终的包复制到远程的仓库,以让其它开发人员与项目共享。

    3.2.3 site 生命周期的阶段

    1. pre-site 执行一些需要在生成站点文档之前完成的工作
    2. site 生成项目的站点文档
    3. post-site 执行一些需要在生成站点文档之后完成的工作,并且为部署做准备
    4. site-deploy 将生成的站点文档部署到特定的服务器上

    3.3 命令与生命周期的阶段

    每个 maven 命令对应生命周期的某个阶段,例如:

    mvn clean 命令对应 clean 生命周期的 clean 阶段
    mvn test 命令对应 default 生命周期的 test 阶段
    

    执行命令会将该命令在的在生命周期当中之前的阶段自动执行,比如:

    mvn clean 命令会自动执行 pre-clean 和 clean 两个阶段
    mvn test 命令会自动执行 validate、compile、test 等阶段
    

    注意:执行某个生命周期的某个阶段不会影响其它的生命周期!

    如果要同时执行多个生命周期的阶段可在命令行输入多个命令,中间以空格隔开,例如:

    clean package 该命令执行 clean 生命周期的 clean 阶段和 default 生命周期的 package 阶段
    

    4. pom.xml 基本配置

    pom.xml 是 Maven 项目的核心配置文件,位于每个工程的根目录,基本配置如下:

    <project > :文件的根节点 .
    <modelversion > : pom.xml使用的对象模型版本
    <groupId > :项目名称,一般写项目的域名
    <artifactId > :模块名称,子项目名或模块名称
    <version > :产品的版本号 . 
    <packaging > :打包类型,一般有jar、war、pom 等 
    <name > :项目的显示名,常用于 Maven 生成的文档。  
    <description > :项目描述,常用于 Maven 生成的文档
    <dependencies> :项目依赖构件配置,配置项目依赖构件的坐标
    <build> :项目构建配置,配置编译、运行插件等。
    
  • 相关阅读:
    什么是基于注解的容器配置?
    一个线程运行时发生异常会怎样?
    Java 中你怎样唤醒一个阻塞的线程?
    为什么 wait, notify 和 notifyAll 这些方法不在 thread 类里面?
    Java 中 notify 和 notifyAll 有什么区别?
    在 Spring MVC 应用程序中使用 WebMvcTest 注释有什么用处?
    java 中有几种方法可以实现一个线程?
    什么是AOP?
    什么是竞争条件?你怎样发现和解决竞争?
    Mybatis 是如何进行分页的?分页插件的原理是什么?
  • 原文地址:https://www.cnblogs.com/binarylei/p/8647262.html
Copyright © 2020-2023  润新知