项目构建与Apache Maven

Apache Maven项目管理与构建工具实战指南 Apache Maven是一个开源的项目管理和自动化构建工具,它基于项目对象模型(POM)的概念,利用一个中央信息管理的方式来管理项目的构建、报告和文档。自从2004年发布以来,Maven已经成为了Java社区最广泛使用的构建工具之一。Maven构建生命周期由一系列阶段(phase)组成,每个阶段代表构建过程中的一个步骤。在Maven的三个标准生命周期(clean、default、site)中,default生命周期是最核心的,它定义了构建项目的主要流程。 阅读详情

在这里插入图片描述

什么是构建工具?

构建工具是将软件项目构建相关的过程自动化的工具。构建一个软件项目通常包含以下一个或多个过程:

  • 生成源码(如果项目使用自动生成源码);
  • 从源码生成项目文档;
  • 编译源码;
  • 将编译后的代码打包成JAR文件或者ZIP文件;
  • 将打包好的代码安装到服务器、仓库或者其它的地方;

有些项目可能需要更多的过程才能完成构建,这些过程一般也可以整合到构建工具中,因此它们也可以实现自动化。

自动化构建过程的好处是将手动构建过程中犯错的风险降到最低。而且,自动构建工具通常要比手动执行同样的构建过程要快很多。

 

什么是Maven?

Maven是意第绪语,意为知识的积累,最初是为了简化Jakarta Turbine项目中的构建过程,以一种标准的方式来构建项目,明确定义项目的组成部分,用一种简便的方法来发布项目信息,以及一种在多个项目中共享JAR的方法,所以诞生了一个可以用于构建和管理任何基于Java的项目的工具 —— Maven。 Maven可以初始化创建一些东西让Java开发人员的日常工作变得更加轻松,并且通常有助于理解任何基于Java的项目。

Maven是一个强大的Java项目构建工具。当然,你也可以使用其它工具来构建项目,但由于Maven是用Java开发的,因此Maven被更多的用于Java项目中。

事实上,Maven开发者认为Maven不仅仅是一个构建工具。你可以去阅读他们的文档,看看他们是怎么想的。但是现在,我们就把Maven当作一个构建工具,当你理解和开始使用Maven后,你就明白Mavan到底是什么了。

 

安装Maven

安装Maven,访问 Apache Maven 下载,然后按照安装指南的步骤即可。总结一下,你需要做:

  1. 下载并解压Maven;
  2. 在环境变量中添加 MAVEN_HOME 并设置为解压后的Maven目录;
  3. 将Maven目录下bin文件夹路径追加到PATH环境变量中:在Windows上是 %MAVEN_HOME%/bin,在Unix系统上是 $MAVEN_HOME/bin;
  4. 打开终端输入mvn -v,然后回车;

输入 mvn -v 命令后,终端上显示当前安装的Maven版本信息说明Maven已经安装好了。

注意:Maven运行需要Java环境,因此也需要安装Java,Java版本1.5及以上;

 

Maven核心概念

Maven的中心思想是POM文件(项目对象模型)。POM文件是以XML文件的形式表述项目的资源,如源码、测试代码、依赖(用到的外部Jar包)等。POM文件应该位于项目的根目录下。

下图说明了Maven是如何使用POM文件的,以及POM文件的主要组成部分:
在这里插入图片描述
POM文件

当你执行一条Maven命令的时候,你会传入一个pom文件。Maven会在该pom文件描述的资源上执行该命令。

构建生命周期、阶段和目标

Maven的构建过程被分解为构建生命周期、阶段和目标。一个构建周期由一系列的构建阶段组成,每一个构建阶段由一系列的目标组成。当你运行Maven的时候,你会传入一条命令。这条命令就是构建生命周期、阶段或目标的名字。如果执行一个生命周期,该生命周期内的所有构建阶段都会被执行。如果执行一个构建阶段,在预定义的构建阶段中,所有处于当前构建阶段之前的阶段也都会被执行。

依赖和仓库

Maven执行时,其中一个首要目标就是检查项目的依赖。依赖是你的项目用到的jar文件(java库)。如果在本地仓库中不存在该依赖,则Maven会从中央仓库下载并放到本地仓库。本地仓库只是你电脑硬盘上的一个目录。你可以根据需要制定本地仓库的位置。你也可以指定下载依赖的远程仓库的地址。这些将会在后续的小节中详细介绍。

插件

构建插件可以向构建阶段中增加额外的构建目标。如果Maven标准的构建阶段和目标无法满足项目构建的需求,你可以在POM文件里增加插件。Maven有一些标准的插件供选用,如果需要你可以自己实现插件。

配置文件

配置文件用于以不同的方式构建项目。比如,你可能需要在本地环境构建,用于开发和测试,你也可能需要构建后用于开发环境。这两个构建过程是不同的。在POM文件中增加不同的构建配置,可以启用不同的构建过程。当运行Maven时,可以指定要使用的配置。

Maven与Ant

Ant是Apache另一个流行的构建工具。如果你熟悉Ant,正在学习Maven,你将会注意到两者在方法上的区别。

Ant使用命令式的方式,即你需要在Ant构建文件里指定Ant应该执行的操作。你可以指定低级别的操作,如复制文件、编译代码等。你指定操作,还需要执行这些操作执行的顺序。Ant没有默认的目录结构。

Maven使用声明式的方式,即你需要在POM文件里指定做什么,而不是如何做。POM文件描述项目的资源-而不是如何构建。相比而言,Ant构建文件描述的是如何构建项目。在Maven里,如何构建是在“Maven 构建声明周期、阶段和目标”中预定义的。

Maven POM 文件

Maven的POM文件是一个xml文件,描述项目用到的资源,包括源代码目录、测试代码目录等的位置,以及项目依赖的外部jar包。

POM文件描述的是构建“什么”,而不是“如何”构建。如何构建是取决于Maven的构建阶段和目标。当然,如果需要,你也可以向Maven构建阶段中添加自定义的目标。

每一个项目都有一个POM文件。POM文件即pom.xml,应该放在项目的根目录下。一个项目如果分为多个子项目,一般来讲,父项目有一个POM文件,每一个子项目都有一个POM文件。在这种结构下,既可以一步构建整个项目,也可以各个子项目分开构建。

本文剩下的章节,主要介绍POM文件最重要的部分。POM文件的完整文档,参考Maven POM Reference

 
如下为一个最小化的POM文件示例:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.codedancing</groupId>
    <artifactId>spring</artifactId>
    <version>1.0-SNAPSHOT</version>

</project>
Apache Maven 3.5.3:项目管理与构建利器 Maven的生命周期是一个定义好的一系列构建阶段,以一个有序的方式完成构建过程。理解生命周期及其阶段对于开发人员来说至关重要,因为它定义了 Maven 执行任务的默认顺序。生命周期中的每个阶段都绑定了一系列插件目标,它们按顺序执行,完成具体的构建任务。Maven 有三个内置的生命周期:cleandefault和site。clean生命周期的目的是清理项目,default生命周期负责构建项目,而site生命周期则用于生成项目的站点文档。一个典型的 Maven。 阅读详情

相关推荐

Apache Maven 3.5.2:项目管理与构建工具精要

Apache Maven是一个项目管理和自动化构建的工具,它基于项目对象模型(POM)的概念,使用标准化的项目结构和项目描述文件pom.xml。它不仅可以管理项目的构建过程,如编译、测试和打包,还能帮助项目管理依赖关系,维护项目文档,并提供相关插件来执行特定任务。在pom.xml中,项目的基本信息通常位于文件的开头部分。下面是一个简单的例子,展示了如何在POM中定义项目的基本信息:</project>在这个例子中,groupId定义了组织的ID,artifactId。

weixin_33622085的博客 1073

AspectJ简介

@TOC 切面的执行时间 执行时间在规范中叫做Advice(通知,增强),在aspectJ框架中使用注解表示,主要有5种 @Before @AfterReturning @Around @AfterThrowing @After 切面的执行位置 使用的时AspectJ的切入点表达式 表达式的原型 举例 execution(public * * (. .)) 表示:任意公共方法 第一个表示任意返回类型 第二个表示任意方法名 (. .)参数也是任意的 execution(* set*(. .)) 表示

qq_36976201的博客 1259

掌握Apache Maven 3.6.3:Java项目管理与构建指南

Apache Maven是一个基于项目对象模型(POM)概念的项目管理和自动化构建工具。它最初设计用于简化Java项目的构建过程,但是随着版本的演进,Maven已经发展成为可以管理多种语言项目构建的工具。Maven不仅仅是一种构建工具,它还提供了一整套项目管理的生命周期,包括项目文档生成、报告、依赖管理、SCM集成、发布管理、邮件列表管理等。构建配置定义了如何构建项目,包括构建源码的位置、编译器设置等。依赖管理部分列出了项目所需的库文件,而插件配置则定义了在构建过程中需要运行的插件及其版本。

weixin_36299472的博客 871

Linux 环境搭建一步到位,看这篇就够了!

VMware Workstation 是一款功能强大的桌面虚拟软件,可模仿物理机器承载多个虚拟操作系统。VMWare下载地址链接:https://pan.baidu.com/s/1OFVRzCySbrzLs-P37Iw9gg 提取码:wiih安装博客:https://blog.youkuaiyun.com/babyxue/article/details/80970526这里我们采用 CentOS 7 操作系统,该系统是目前企业中使用率非常高的系统。下载地址:https://mirrors.aliyun.com/cent

养歌的博客 1万+

Apache Maven 3.2.5:Java项目构建管理工具

Apache Maven 是一个开源的项目管理工具,它使用项目对象模型 (POM) 文件来管理项目的构建、报告和文档。Maven 的主要功能包括:项目构建自动化、依赖管理和项目信息聚合等。使用 Maven,开发者可以更高效地进行项目构建和生命周期管理。Maven 3.2.5版本引入了多项新功能和改进,目的是为了提高构建的效率、灵活性和可配置性。核心更新包括了对构建脚本的增强、更好的依赖管理和错误处理,以及对大规模多模块项目的优化。

weixin_34718952的博客 1150

Apache Maven 3.2.3 项目管理与构建实战

Maven是Apache软件基金会中的一个顶级项目,它是一个基于Java的项目管理和自动化构建工具。其主要目的是通过定义一个标准化的项目结构、编译、测试、打包、发布和文档生成等项目生命周期管理过程,帮助开发者快速上手和构建Java项目。作为一个项目管理工具,Maven不仅可以管理项目构建过程,还能够管理项目对象模型(POM),依赖关系和插件配置。Maven的出现极大地简化了项目构建的过程,特别是对于大型项目,它提供了很好的组织方式,并且通过集中化的管理方式,使得开发团队成员之间的工作更加协调一致。

weixin_42581003的博客 973

生产环境--系统搭建--基础环境搭建

环境要求 安装方式选择最小安装;要求/(根)、/home及/var分区空间均在40g以上(项目正式系统可根据实际情况往上调整) 交换分区及内存应在8g以上(项目正式系统可根据实际情况往上调整) 一、创建用户 1.1、建立具有administrator权限的新用户,并且以该用户登录 1.1.1、增加hd用户 [root@localhost home]# sudo adduser hd [root@localhost home]# sudo passwd hd 更改用户 hd 的密码 。 新的

zhou920786312的博客 1580

Apache Maven 3.6.3项目管理与构建实战

Maven是一个项目管理和构建自动化工具,主要服务于Java项目。它通过一个中央信息管理的方式,使得项目构建、报告生成、依赖管理等繁杂任务变得简单,为开发者提供了一种统一的构建方式。Maven不仅管理项目构建的生命周期,还支持多模块项目构建,并能帮助开发者处理文档生成、报告等项目构建相关的工作。构建概要文件能够根据不同的环境变量或命令行参数,为 Maven 构建过程提供多种配置选项。例如,开发者可能需要一个包含调试信息的构建版本,而生产环境中则需要一个精简的、无调试信息的版本。

weixin_35433448的博客 729

操作系统-环境搭建

操作系统环境搭建

weixin_56008905的博客 1418

Apache Maven 3.3.9:Java项目管理与构建工具

在本章中,我们将探讨Maven项目管理工具的基础知识。Maven是一个项目对象模型(POM)的管理和理解工具,它主要负责项目的构建、报告和文档生成。我们将深入了解Maven的起源和发展历程,探讨它与其他构建工具相比的优势,以及Maven的核心概念,包括项目对象模型(POM)、坐标、仓库、生命周期、插件等。Maven构建生命周期是Maven项目执行过程中的一系列有序阶段。这些阶段通过定义好的顺序执行,确保项目构建的一致性和可重复性。生命周期提供了一个高层次的抽象,它定义了构建和部署项目时可以执行的步骤。

weixin_42610671的博客 1116

Apache Maven 3.2.5 完整安装包与项目构建实战

Maven 遵循“约定优于配置”(Convention over Configuration)原则,通过预设标准项目结构(如),大幅降低项目初始化成本。开发者无需手动定义源码路径或构建规则,Maven 自动识别结构并应用默认行为,提升团队协作一致性。编辑可调整输出细节:上述配置将默认日志等级设为info,并对构建事件记录器降级为warn,同时启用时间戳显示。这在 CI 环境中非常有用,可减少冗余输出,便于日志解析。更重要的是,conf。

weixin_42504649的博客 1129

Ubuntu系统开发环境搭建和常用软件

Ubuntu系统常用的开发环境搭建和软件安装

码农兴哥的技术笔记 3720

Apache Maven 3.6.3:高效Java项目构建与管理

本文还有配套的精品资源,点击获取 简介:Apache Maven 3.6.3 是一个高效的项目管理和构建工具,专注于Java应用的开发。该版本提供了改进和优化,以增强开发者工作效率和项目可维护性。压缩包包含了运行Maven所需的全部文件,如执行脚本、配置文件、库文件等。Maven基于项目对象模型(POM)管理依赖,自动化构建任务,支持多生命周期阶段和插件系统,为Java开发...

weixin_42527665的博客 2091

Apache Maven:Java项目构建的终极解决方案

Apache Maven是Java开发领域最受欢迎的项目管理和构建工具,它为开发者提供了一套完整的解决方案,从依赖管理到项目构建,从文档生成到部署发布,让复杂的构建过程变得简单高效。无论你是初学者还是资深开发者,Maven都能帮助你轻松应对Java项目的构建挑战。✨ ## 为什么选择Apache Maven? ### 🚀 强大的依赖管理 Maven通过中央仓库自动管理项目依赖,无需手动下载和

gitblog_00412的博客 463

掌握Apache Maven 3.6.3项目构建技巧

在现代软件开发中,项目的构建和管理是一个复杂而重要的环节。Maven作为一种流行的项目管理工具,旨在简化构建过程、提供标准化的构建生命周期,并允许开发者轻松地管理和构建项目的依赖关系。本章节将对Maven项目管理与构建的基本概念进行介绍,为读者理解后续章节打下坚实的基础。Apache Maven是一个全面的项目管理工具,不仅包含了编译、测试、打包、部署等构建功能,还提供了一整套用于项目信息管理、文档生成和报告的工具。Maven使用一个名为pom.xml。

weixin_30205153的博客 425

ABAP BAPI_PRODORD_CHANGE函数详解:如何高效重读生产订单主数据

本文深入解析ABAP BAPI_PRODORD_CHANGE函数在生产订单主数据高效处理中的应用。通过详细讲解函数架构、主数据重读机制及实战代码示例,帮助开发人员掌握生产订单数据的精准读取与更新技术,提升SAP系统集成与自动化处理效率。

weixin_29207149的博客 468

探索Apache Maven JAR插件:构建Java项目的利器

探索Apache Maven JAR插件:构建Java项目的利器 在Java开发的世界中,构建工具的选择对于项目的成功至关重要。Apache Maven,作为一个强大的项目管理和理解工具,一直受到开发者的青睐。今天,我们将深入探讨其核心插件之一——Apache Maven JAR插件,这是一个不可或缺的工具,它简化了Java归档文件(JAR)的创建和管理过程。 项目介绍 Apache Maven ...

gitblog_00006的博客 471

NX二次开发入门必看:手把手教你搭建开发环境

想顺利开展nx二次开发,第一步就是配置好开发环境。本文详细讲解从安装准备到环境调试的完整流程,结合实际操作细节,帮你避开常见坑点,快速进入nx二次开发的实战阶段。

weixin_31569663的博客 1458

探索高效Java项目构建之道:Apache Maven 3.6.0

探索高效Java项目构建之道:Apache Maven 3.6.0 【下载地址】ApacheMaven3.6.0下载仓库 Apache Maven 3.6.0 下载仓库 项目地址: https://gitcode.com/open...

gitblog_09738的博客 404

system_stm32f10x.c文件分析

配置系统时钟(包括系统时钟源、锁相环(PLL)倍频系数、高级高性能总线(AHB)/ 高级外设总线(APBx)预分频器以及闪存相关设置)。该函数在系统复位后的启动阶段被调用,且调用时机早于跳转到主程序之前。

Jia shuheng的博客 603

SAP 集成泛微 OA Open API 新建流程申请接口

《SAP ERP 与泛微 OA 的系统集成》系列文章。泛微 Open API 是基于 HTTPS 的 Restful 接口,上篇文章,我已经完成了调用业务接口之前的准备工作,这篇文章我以新建流程申请这个系统集成最重要的接口为例,讲解接口设计、泛微 API 调用的过程、遇到的问题、解决的办法。

SAP李斌,本人承诺所有原创文章均不使用任何AI生成技术,请大家放心阅读。 3555

探索Apache Maven Archiver:构建高效Java项目的利器

探索Apache Maven Archiver:构建高效Java项目的利器 在Java开发的世界中,构建工具的选择对于项目的成功至关重要。Apache Maven Archiver,作为Apache Maven项目的一部分,提供了一个强大的工具集,帮助开发者高效地管理和打包Java项目。本文将深入介绍Apache Maven Archiver,分析其技术特点,探讨其应用场景,并突出其独特优势。 项...

gitblog_00666的博客 610

分享Charles抓包 显示<unknown> 解决方案 !

首先电脑上需要安装charles,然后需要设置手机上的WiFi设置,修改配置中的代理设置,把服务器的主机名设置成你电脑当前的ip地址(需要注意的是,你的代理服务器主机名的ip地址要和你当前连的ip地址的网段需要一致)。像 Charles 这样的工具,虽然功能强大,但仍然需要用户具备一定的配置和排障能力,以应对各种复杂的网络环境。通过将 Charles 的 SSL 证书正确安装到移动设备中,并在设置中启用“允许不安全的内容”选项,最终成功解决了这一问题,并准确抓取到所有请求数据。Charles 显示。

朱雀随云记的博客 8105
上一篇: VMware虚拟机CentOS7 - VMnet8 网络配置及解决无法上网
下一篇: 设计模式的七大原则及其分类
xcosy
博客等级 码龄7年 29粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值