![](https://img-blog.csdnimg.cn/568fb7c69ce04386a3d6f6473709c4c2.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Maven教程
文章平均质量分 97
欢迎来到我的Maven教程专栏!本专栏旨在帮助你快速掌握和理解Maven构建工具的基本概念、功能以及最佳实践。
在本专栏中,我们将从头开始介绍Maven,并逐步深入学习Maven的各个方面,包括如何安装和配置Maven,如何创建和管理Maven项目,以及如何使用Maven进行编译、打包和部署等...
小山code
19年开始从事JAVA研发相关工作,曾就职于QCTC、Newtouch,服务客户:国网重庆电力公司、上汽集团旗下赛创AI公司。有智慧交易及服务系统、电力计划系统等设计及开发经验,曾成功支持千万级客户量系统的上线及运维。
展开
-
【Maven教程】(十六):Archetype—— 使用 Archetype 的步骤及批处理方式、编写 Archetype、Archetype Catalog~
在编写本文的时候,Maven中央仓库中已经包含了249个 Archetype(详见此外,还有大量没有发布到中央仓库的Archetype分布在其他Maven仓库中。任何人都不可能全部了解它们,因此这里只介绍几个比较常用的Archetype。maven-archetype-quickstart 可能是最常用的 Archetype, 当 maven-archetype-plugin 提示用户选择Archetype 的时候,它就是默认值。一个包含 JUnit 依赖声明的 pom.xml。原创 2024-01-31 17:05:06 · 1800 阅读 · 0 评论 -
【Maven教程】(十五):编写 Maven 插件—— 编写 Maven 插件的一般步骤及案例、Mojo 标注与参数、错误处理和日志 ~
Maven 社区提供了成百上千的插件供用户使用,这些插件能够满足绝大部分用户的需求。然而,在极少数的情况下,用户还是需要编写 Maven 插件来满足自己非常特殊的需求。编写 Maven 插件的一般步骤包括创建一个插件项目、编写Mojo 、为 Mojo提供配置点、实现 Mojo 行为、处理错误、记录日志和测试插件等。本章实现了一个简单的代码行统计插件, 并逐步展示了上述步骤。用户在编写自己插件的时候,还可以参考本章描述的各种 Mojo标注 、Mojo 参数、异常类型和日志接口。原创 2024-01-26 08:54:47 · 1963 阅读 · 1 评论 -
【Maven教程】(十四):生成项目站点—— 丰富项目信息、项目报告插件、自定义站点外观、国际化及部署站点 ~
Maven 生成的站点非常灵活,除了本章前面提到的标准项目信息报告和其他插件生成 的报告,用户还能够自定义站点的布局和外观。这些特性能让用户创建出更适合自己的, 更有个性的Maven 站点。第四节介绍了如何自定义站点导航菜单并链接至特定的 html 页面,本节介绍如何创建自定义的站点页面。到目前为止,Maven 支持得比较好的两种文档格式为APT 和 FML。APT(Almost Plain Text) 是一种类似于维基的文档格式,用户可以用它来快速地创建 简单而又结构丰富的文档。原创 2024-01-19 16:35:55 · 497 阅读 · 0 评论 -
【Maven教程】(十三):灵活的构建—— Maven 属性、构建环境的差异与资源过滤、Maven Profile、Web 资源过滤 ~
项目构建过程中一个常常需要面对的问题就是不同的平台环境差异,这可能是操作系统的差异、开发平台和测试平台的差异、不同客户之间的差异。为了应对这些差异, Maven 提供了属性、资源过滤以及profile 三大特性。Maven 用户可以在 POM 和资源文件中使用 Maven属性表示那些可能变化的量,通过不同profile 中的属性值和资源过滤特性为不同环境执行不同的构建。原创 2024-01-09 16:44:09 · 1521 阅读 · 3 评论 -
【Maven教程】(十二):版本管理 ——版本号定义约定及相关概念,自动化版本发布与创建分支,GPG签名 ~
到目前为止,读者应该已经清楚了解了快照版和发布版的区别。现在再深入看一下 1.0、1.1、1.2.1、3.0-beta 这样的版本号后面又遵循了怎样的约定。了解了这样的约定之后,就可以正确地为自己的产品或者项目定义版本号,而你的用户也能了解到隐藏在版本号中的信息。这往往表示了该项目或产品的第一个重大版本的第三个次要版本的第四次增量版本的beta-2里程碑。很拗口?那一个个分开解释:“1”表示了该版本是第一个重大版本;“3” 表示这是基于重大版本的第三个次要版本;“4”表示该次要版本的第四个增量;原创 2023-12-11 16:01:58 · 2041 阅读 · 4 评论 -
【Maven教程】(十一):使用 Maven 构建 Web应用 —— 使用 jetty-maven-plugin 进行测试、使用 Cargo 实现自动化部署~
本文介绍了 用 Maven 管理Web 项目,因此首先讨论了Web 项目的基本结构,然后分析实现了背景案例的最后两个模块: account-service 和 account-web, 其中后者是一个典 型的Web 模块。开发Web 项目的时候,大家往往会使用热部署来实现快速的开发和测试, jetty-maven-plugin 可以帮助实现这一 目标。最后讨论的是自动化部署,这一技术的主角是 Cargo, 有了它,可以让Maven 自动部署应用至本地和远程 Web 容器中。⏪。原创 2023-11-16 15:05:22 · 1211 阅读 · 2 评论 -
【Maven教程】(十):使用 Hudson 进行持续集成—— 从Hudson的安装到任务创建 ~
优秀的持续集成工具有很多,如老牌的开源工具CruiseControl 、商业的 Bamboo 和 TeamCity 等。这里只介绍 Hudson, 因为它是目前较流行的开源持续集成工具。该项目过去一直托管在 java.net 社区,不过现在已经迁移到。Hudson 主要是由Kohsuke Kawaguchi 开发和维护的,Kohsuke Kawaguchi 自2001年就已经加入 Sun 公司(当然,现在已经是 Oracle 了)。原创 2023-11-09 14:39:09 · 1614 阅读 · 0 评论 -
【Maven教程】(九):使用 Maven 进行测试——动态指定要运行的测试用例、包含与排除测试用例、测试报告、运行TestNG测试、重用测试代码 ~
本文的主题是Maven与测试的集成,不过在讲述具体的测试技巧之前先实现了背景案例的account-captcha模块,这一模块的测试代码也成了本章其他内容良好的素材。maven-surefire-plugin是Maven背后真正执行测试的插件,它有一组默认的文件名模式来匹配并自动运行测试类。用户还可以使用该插件来跳过测试、动态执行测试类、包含或排除测试等。maven-surefire-plugin能生成基本的测试报告,除此之外还能使用cobertura-maven-plugin生成测试覆盖率报告。原创 2023-10-24 16:30:44 · 2138 阅读 · 4 评论 -
【Maven教程】(八):使用 Nexus 创建私服——Nexus 简介及安装、仓库与仓库组、索引与构件搜索、配置从 Nexus 下载构件、部署构件至 Nexus~
2005年12月,Tamas Cservenak 由于受不了匈牙利电信ADSL的低速度,开始着手开发Proximity—一个很简单的 Web 应用。它可以代理并缓存 Maven 构件,当 Maven 需要下载构件的时候,就不需要反复依赖于ADSL。到2007年, Sonatype 邀请 Tamas 参与创建一个更酷的 Maven 仓库管理软件,这就是后来的Nexus。Nexus 团队的成员来自世界各地,它也从社区收到了大量反馈和帮助,现在Nexus已经发布到了 3.60.0 版本,它也正健康快速地成长着。原创 2023-10-20 16:11:07 · 4387 阅读 · 2 评论 -
【Maven教程】(七)聚合与继承:多模块项目实用特性介绍,反应堆构建及裁剪 ~
在这个技术飞速发展的时代,各类用户对软件的要求越来越高,软件本身也变得越来越复杂。因此,软件设计人员往往会采用各种方式对软件划分模块,以得到更清晰的设计及更高的重用性。当把Maven应用到实际项目中的时候,也需要将项目分成不同的模块,例如,一个账户注册服务可被划分成 、等五个模块。Maven的聚合特性能够把项目的各个模块聚合在一起构建,而Maven的继承特性则能帮助抽取各模块相同的依赖和插件等配置,在简化POM的同时,还能促进各个模块配置的一致性。本文将结合实际的案例阐述Maven的这两个特性...原创 2023-09-21 10:09:01 · 651 阅读 · 24 评论 -
【Maven教程】(六)生命周期和插件:三种生命周期、命令行与生命周期对应的关系,插件目标和绑定方式,插件配置的多种方法,获取插件信息的技巧及插件解析机制~ ~
初识生命周期、生命周期详解(三套生命周期、clean 生命周期、default 生命周期、site 生命周期、命令行与生命周期)、插件目标、插件绑定(内置绑定、自定义绑定)、插件配置(命令行插件配置、POM中插件全局配置、POM中插件任务配置)、获取插件信息(在线插件信息、使用 maven-help-plugin 描述插件)、从命令行调用插件、插件解析机制(插件仓库、插件的默认groupId、解析插件版本、解析插件前缀)原创 2023-09-09 17:35:15 · 521 阅读 · 8 评论 -
【Maven教程】(五)仓库:解析Maven仓库—布局、分类和配置,远程仓库的认证与部署,快照版本,依赖解析机制,镜像和搜索服务 ~
在Maven 世界中,任何一个依赖、插件或者项目构建的输出,都可以称为构件。例如, 依赖是一个构件,插件是一个构件,项目构建完成后的输出也是一个构件。任何一个构件都有一组坐标唯一标识。在一台工作站上,可能会有几十个 Maven 项目,所有项目都使用, 这些项目中的大部分都用到了log4j, 有一小部分用到了Spring Framework, 还有另外一小部分用到了Struts2。原创 2023-09-03 22:30:01 · 1851 阅读 · 5 评论 -
【Maven教程】(四)坐标与依赖:坐标概念,依赖配置、范围、传递性和最佳实践 ~
关于坐标 (Coordinate), 大家最熟悉的定义应该来自于平面几何。在一个平面坐标系中,坐标 (x,y) 表示该平面上与x 轴距离为y, 与 y 轴距离为x 的一点,任何一个坐标都能够唯一标识该平面中的一点。在实际生活中,我们也可以将地址看成是一种坐标。省、市、区、街道等一系列信息 同样可以唯一标识城市中的任一居住地址和工作地址。邮局和快递公司正是基于这样一种 坐标进行日常工作的。原创 2023-09-02 21:20:47 · 2692 阅读 · 10 评论 -
【Maven教程】(三)基础使用篇:入门使用指南——POM编写、业务代码、测试代码、打包与运行、使用Archetype生成项目骨架~
没有任何实际的Java代码,我们就能够定义一个Maven 项目的 POM, 这体现了 Maven 的一大优点,它能让项目对象模型最大程度地与实际代码相独立,我们可以称之为解耦,或者正交性。命令,但在Maven2中这是不安全的,因为该命令没有指定Archetype插件的版本,于是Maven会自动去下载最新的版本。文件内容称为项目的骨架,当第一次创建项目骨架的时候,你还会饶有兴趣地去体会这些默认约定背后的思想,第二次,第三次,你也许还会满意自己的熟练程度,但第四、第五次做同样的事情,你可能就会恼火了。原创 2023-08-24 15:45:41 · 2189 阅读 · 28 评论 -
【Maven教程】(二)安装配置篇:手把手教你安装及配置Maven环境~
在 Windows 上安装 Maven1.1 下载及安装 Maven1.2 升级 Maven2️⃣ 在基于UNIX 的系统上安装 Maven2.1 下载和安装2.2 升级 Maven2.3 安装目录分析2.4 设置 HTTP 代理3️⃣ 在 IDE中安装Maven插件原创 2023-08-20 22:06:37 · 2546 阅读 · 12 评论 -
【Maven教程】(一)入门介绍篇:Maven基础概念与其他构建工具:理解构建过程与Maven的多重作用,以及与敏捷开发的关系 ~
从概念上简单地介绍了一下Maven, 通过本章我们应该能大致了解Maven 是什么以及它有什么用途。我们还将Maven 与其他流行的构建工具(如Make 和 Ant等) 做了一些对比分析。如果你没用过Maven, 但有Make 或者 Ant 的使用经验,相信通过比较你能更清楚地了解各种工具的优劣势,并且会对Maven 有一个理性的认识。将 Maven 和敏捷开发与极限编程结合起来分析是为了让大家从另 一个角度了解Maven, 毕竞软件开发离不开对于软件过程的理解。原创 2023-08-15 21:30:45 · 1557 阅读 · 36 评论