随笔分类 - Maven 基础知识
Maven 项目对象模型(POM),可以通过一小段描述信息来管理项目的构建、部署、报告、文档等功能的项目管理工具软件。
摘要:1. Gradle 简介 Gradle 是一个开源自动化构建工具,它的核心基于 Groovy 的丰富而可扩展的域描述语言(DSL),而不是基于可扩展的标记语言(XML)来定义构建脚本。 Groovy 通过声明性的语言元素将基于声明的构建推向下层,可以按想要的方式进行组合。这些元素同样也为支持 Jav
阅读全文
摘要:Maven 项目的部署通常包括以下步骤: (1) 开发人员将项目代码提交到 GIT 或 SVN 等版本控制系统中,并进行标记; (2) 编译人员从 Git 或 SVN 上下载完整的项目代码; (3) 构建应用; (4) 将构建输出的 WAR 或 JAR 文件存放在指定的服务器(Nexus); (5)
阅读全文
摘要:Nexus 是 Sonatype 公司发布的一款仓库(Repository)管理软件,常用来搭建 Maven 私服,所以也有人将 Nexus 称为 “Maven仓库管理器”。目前 Nexus 分为 Nexus 2.x 和 Nexus 3.x 两个大版本,它们是并行的关系。Nexus 2.x:http
阅读全文
摘要:1. 创建 Webapp 项目 本文将介绍如何使用 Maven 创建、构建、部署和运行 Web 应用程序。 1) 创建 Web 应用 使用 Maven 的 maven-archetype-webapp 模板,在 D:\Workshop\maven 目录下创建一个 Webapp 项目。 打开 cmd
阅读全文
摘要:Maven 项目通常都会有多个不同的运行环境,例如开发环境,测试环境、生产环境等。在不同环境的构建过程很可能是不同的,例如数据源配置、插件、以及依赖的版本等。将项目部署到不同的环境时,都需要修改相应的配置,这样重复的工作,不仅浪费劳动力,还容易出错。为了解决这一问题,Maven 引入了 Profil
阅读全文
摘要:1. Maven 依赖管理 在开发中子模块可以通过继承获得父模块中声明的全部依赖,这样虽然避免了在各个子模块 POM 中重复进行依赖声明,但也极有可能造成子模块中引入一些不必要的依赖。为此 Maven 引入了 dependencyManagement 来对依赖进行管理。 本文将在 “Maven基础知
阅读全文
摘要:1. Maven 依赖传递 Maven 的依赖传递机制是指:不管 Maven 项目存在多少间接依赖,POM 中都只需要定义其直接依赖,不必定义任何间接依赖。 Maven 会动读取当前项目各个直接依赖的 POM,将那些必要的间接依赖以传递性依赖的形式引入到当前项目中。Maven 的依赖传递机制能够帮助
阅读全文
摘要:Maven 自动化构建是一种方案,即当某个项目构建完成后(特别是有代码更新的情况下),所有依赖它的相关项目也应该开始构建过程,以确保这些项目的稳定运行。Maven 的自动化构建主要通过如下两种方案实现: (1) 使用 maven-invoker-plugin 插件。 (2) 使用持续集成(CI)服务
阅读全文
摘要:1. Maven 插件 Maven 实际上是一个依赖插件执行的框架,它执行的每个任务实际上都由插件完成的。Maven 的核心发布包中并不包含任何 Maven 插件,它们以独立构件的形式存在,只有在 Maven 需要使用某个插件时,才会去仓库中下载。 Maven 提供了如下 2 种类型的插件。 插件类
阅读全文
摘要:在 Maven 出现之前,项目构建的生命周期就已经存在,开发人员每天都在对项目进行清理,编译,测试及部署,但由于没有统一的规范,不同公司甚至不同项目之间的构建的方式都不尽相同。Maven 从大量项目和构建工具中学习和反思,最后总结了一套高度完美的,易扩展的生命周期。这个生命周期将项目的清理、初始化、
阅读全文
摘要:1. Maven 坐标 在 Maven 中,任何一个依赖、插件或者项目构建的输出,都可以称为构件(组件)。在 Maven 世界中存在着数十万甚至数百万构件,在引入坐标概念之前,当用户需要使用某个构件时,只能去对应的网站寻找,但各个网站的风格迥异,这使得用户将大量的时间浪费在搜索和寻找上,严重地影响了
阅读全文
摘要:注:开始阅读 Maven 基础知识系列文章之前,读者应该已经掌握了 Java 基础知识。另外,本系列文章中的所有实例都是使用 IntelliJ IDEA 编辑,所以还需要对 IntelliJ IDEA 有基本的了解。以下是常用的 Java 开发工具(IDE): Eclipse IDE for Jav
阅读全文