本文地址:http://176.ib911.com/10983206/2587251
文章摘要:申博游戏网址游戏下载网上娱乐场,右护法心中暗叹两人相视而笑,葡京云南时时彩开奖,我存在。

前两天在一个技术群,有人还在问maven中groupId、artifactId、version这些关键字的含义是什么,于是,我觉得还是很有必要来聊聊Maven中的这些核心概念。

成功不是将来才有的,而是从决定去做的那一刻起,持续累积而成。

今天我们来学习Maven中的核心概念。了解了这些核心概念后,我们后面就可以更深层次的学习和使用Maven。

为了完成 default 生命周期,这些阶段(包括其他未在上面罗列的生命周期阶段)将被按顺序地执行。

Maven 有以下三个标准的生命周期:

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

这三个标准它们是相互独立的,你可以仅仅调用clean来清理工作目录,仅仅调用site来生成站点。当然你也可以直接运行 mvn clean install site运行所有这三套生命周期。

运行任何一个阶段的时候,它前面的所有阶段都会被运行,这也就是为什么我们运行mvn install 的时候,代码会被编译,测试,打包。此外,Maven的插件机制是完全依赖Maven的生命周期的,因此理解生命周期至关重要。

Maven插件

Maven是不做具体事情的,只是规定了生命周期的各个阶段和步骤,由集成到 Maven 中的插件完成。

  1. Maven的核心仅仅定义了抽象的生命周期,具体的任务都是交由插件完成的。
  2. 每个插件都能实现多个功能,每个功能就是一个插件目标。
  3. Maven的生命周期与插件目标相互绑定,以完成某个具体的构建任务, 例如compile就是插件maven-compiler-plugin的一个插件目标。

关于插件,这里就说个大概,后续会出一篇文章专门来说Maven插件。

排除不需要依赖

<dependency>
????<groupId>com.tian.maven</groupId>
????<artifactId>my-maven</artifactId>
????<version>1.0.0</version>
????<exclusions>
????????<exclusion>
????????????<groupId>com.tian.maven</groupId>
????????????<artifactId>your-maven</artifactId>
????????</exclusion>
????</exclusions>
</dependency>

上面使用使用exclusions元素排除了my-maven->your-maven依赖的传递,也就是my-maven->your-maven不会被传递到当前项目中。

exclusions中可以有多个exclusion元素,可以排除一个或者多个依赖的传递,声明exclusion时只需要写上groupId、artifactId就可以了,version可以省略。

总结

本文讲述Maven坐标,Maven依赖管理、Maven仓库管理、Maven生命周期以及简单介绍了Maven插件。有了这些概念作为铺垫,我们就可以更深层次去体会,为什么我们在工作室这么用的。

「只要路是对的,就不怕路远。」