maven 入门

傷城~ 2022-01-28 01:23 344阅读 0赞

目录

1.maven 的基本概念

2.maven 生命周期

3.项目中maven 的pom 文件

4.maven 的配置文件setting.xml


1.maven 的基本概念

maven 可以理解为一个项目管理工具。

2.maven 生命周期

maven 有三个内置的生命周期:默认default,清洁clean,站点site

这三个内置的生命周期,每一个都是阶段组成的。

清洁(clean)生命周期
















预清洁(pre-clean) 执行实际项目清理之前所需的流程
清洁(clean) 删除以前构建生成的所有文件
后清洁(post-clean) 执行完成项目清理所需的流程

默认(default)生命周期
































































































验证(validate) 验证项目是正确的,所有必要的信息可用。
初始化(initialize) 初始化构建状态,例如设置属性或创建目录。
产生来源(generate-sources) 生成包含在编译中的任何源代码。
流程源(process-sources) 处理源代码,例如过滤任何值。
生成资源(generate-resources) 生成包含在包中的资源。
流程资源(process-resources) 将资源复制并处理到目标目录中,准备打包。
编译(compile) 编译项目的源代码。
工艺类(process-classes) 从编译后处理生成的文件,例如对Java类进行字节码增强。
生成测试来源(generate-test-sources) 生成包含在编译中的任何测试源代码。
流程测试来源(process-test-sources) 处理测试源代码,例如过滤任何值。
生成测试资源(generate-test-resources) 创建测试资源。
流程测试资源(process-test-resources) 将资源复制并处理到测试目标目录中。
测试编译(test-compile) 将测试源代码编译到测试目标目录中
流程检验类(process-test-classes) 从测试编译中处理生成的文件,例如对Java类进行字节码增强。对于Maven 2.0.5及以上版本。
测试(test) 使用合适的单元测试框架运行测试。这些测试不应该要求代码被打包或部署。
制备包(prepare-package) 在实际包装之前,执行必要的准备包装的操作。这通常会导致打包的处理版本的包。(Maven 2.1及以上)
打包(package) 采取编译的代码,并以其可分发的格式(如JAR)进行打包。
预集成测试(pre-integration-test) 在执行集成测试之前执行所需的操作。这可能涉及诸如设置所需环境等。
集成测试(integration-test) 如果需要,可以将该包过程并部署到可以运行集成测试的环境中。
整合后的测试(post-integration-test) 执行集成测试后执行所需的操作。这可能包括清理环境。
校验(verify) 运行任何检查以验证包装是否有效并符合质量标准。
安装(install) 将软件包安装到本地存储库中,以作为本地其他项目的依赖关系。
部署(deploy) 在集成或发布环境中完成,将最终软件包复制到远程存储库,以与其他开发人员和项目共享。

站点(site)生命周期




















预网站(pre-site) 在实际的项目现场生成之前执行所需的进程
网站(site) 生成项目的站点文档
后网站(post-site) 执行完成站点生成所需的进程,并准备站点部署
网站部署(site-deploy) 将生成的站点文档部署到指定的Web服务器

需要注意的是:

a.在我们开发阶段,有一些生命周期的阶段,比如验证(validate)这些,基本很少用到。只要使用关键的几个基本能满足需求。

3.项目中maven 的pom 文件

这是刚刚创建的一个maven 项目生成的pom.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
  5. http://maven.apache.org/xsd/maven-4.0.0.xsd">
  6. <modelVersion>4.0.0</modelVersion>
  7. <groupId>com.damai</groupId>
  8. <artifactId>maven</artifactId>
  9. <version>1.0-SNAPSHOT</version>
  10. <name>maven</name>
  11. <!-- FIXME change it to the project's website -->
  12. <url>http://www.example.com</url>
  13. <properties>
  14. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  15. <maven.compiler.source>1.7</maven.compiler.source>
  16. <maven.compiler.target>1.7</maven.compiler.target>
  17. </properties>
  18. <dependencies>
  19. <dependency>
  20. <groupId>junit</groupId>
  21. <artifactId>junit</artifactId>
  22. <version>4.11</version>
  23. <scope>test</scope>
  24. </dependency>
  25. </dependencies>
  26. <build>
  27. <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
  28. <plugins>
  29. <!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
  30. <plugin>
  31. <artifactId>maven-clean-plugin</artifactId>
  32. <version>3.1.0</version>
  33. </plugin>
  34. <!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
  35. <plugin>
  36. <artifactId>maven-resources-plugin</artifactId>
  37. <version>3.0.2</version>
  38. </plugin>
  39. <plugin>
  40. <artifactId>maven-compiler-plugin</artifactId>
  41. <version>3.8.0</version>
  42. </plugin>
  43. <plugin>
  44. <artifactId>maven-surefire-plugin</artifactId>
  45. <version>2.22.1</version>
  46. </plugin>
  47. <plugin>
  48. <artifactId>maven-jar-plugin</artifactId>
  49. <version>3.0.2</version>
  50. </plugin>
  51. <plugin>
  52. <artifactId>maven-install-plugin</artifactId>
  53. <version>2.5.2</version>
  54. </plugin>
  55. <plugin>
  56. <artifactId>maven-deploy-plugin</artifactId>
  57. <version>2.8.2</version>
  58. </plugin>
  59. <!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle -->
  60. <plugin>
  61. <artifactId>maven-site-plugin</artifactId>
  62. <version>3.7.1</version>
  63. </plugin>
  64. <plugin>
  65. <artifactId>maven-project-info-reports-plugin</artifactId>
  66. <version>3.0.0</version>
  67. </plugin>
  68. </plugins>
  69. </pluginManagement>
  70. </build>
  71. </project>

对里面的部分概念进行讲解

modelVersion:

指定了当前Maven模型的版本号,对于Maven2和Maven3来说,它只能是4.0.0

version:

SNAPHOT 快照机制,这个可以参考我的另一篇文章SNAPHOT快照机制

packing:

项目打包的类型,可以是 jar、war、rar、ear、pom,默认是jar

dependencies和dependency

dependency 就是依赖。因为maven项目中一个项目可能会依赖其他的jar包,可以通过dependency 表示这种依赖关系。

4.maven 的配置文件setting.xml

  1. <mirrors>
  2. <mirror>
  3. <id>alimaven</id>
  4. <name>aliyun maven</name>
  5. <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
  6. <mirrorOf>central</mirrorOf>
  7. </mirror>
  8. </mirrors>

这个镜像里面的mirrorOf 的值central 表示这是一个中央仓库的镜像

发表评论

表情:
评论列表 (有 0 条评论,344人围观)

还没有评论,来说两句吧...

相关阅读

    相关 maven入门

    maven 是一个包依赖管理工具,可以帮助你管理项目中各个包之间的依赖关系。而不需要你去手动把相关的包引入项目。 在日常开发中减少了很多工作量,能够使是程序员更加关注代码的编写

    相关 maven 入门

    目录 1.maven 的基本概念 2.maven 生命周期 3.项目中maven 的pom 文件 4.maven 的配置文件setting.xml ---------

    相关 maven入门

    [科普:什么是版本控制系统?][Link 1]  [http://www.6zou.net/tech/what-is-vcs-and-why-vcs.html][Link 1

    相关 Maven入门

    一、什么是Maven,它解决了哪些问题 Maven简单说就是Java的项目管理工具,它主要做了两件事 统一开发规范与工具 统一管理jar包 二、原理