Maven入门学习

Maven是什么

Maven 是一个项目管理和构建自动化工具。是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。
它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。

Maven能做什么

  • 构建项目。如编译代码,打包成jar/war等。
  • 依赖管理。从<远程仓库>抓取项目依赖的jar到<本地仓库>;为编译器设置合适的CLASSPATH
  • 项目信息聚合。版本控制信息、项目描述、开发者信;项目站点:javadoc、测试报告、静态分析报告、源码版本日志报。

Maven项目学习

项目文件

pom.xml

pom描述
一个项目所有的配置都放置在 POM 文件中:定义项目的类型、名字,管理依赖关系,定制插件的行为等等。
groupId, artifactId, packaging, version 叫作 maven 坐标,它能唯一的确定一个项目。
注释:GroupID是项目组织唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构。ArtifactID就是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。

项目关系
  1. 继承关系。Super POM-Parent POM-Child POM.
Super POM
  • 所有项目都会隐式继承
  • 项目默认的目录结构/文件位置
  • 项目默认的打包文件名
  • 常用插件的版本和配置
    1. 仓库:<repositories>...</repositories> <pluginRepositories>...</pluginRepositories>中定义的内容。
    2. 构建生命周期。<build>...</build>之间的内容。在生命周期的定义中定义了插件、属性和资源过滤。
    3. profile。<profiles>...</profiles>中内容
Parent POM
  • 指定项目部署地址
  • 常用框架的版本和配置
  • 编译器版本
多模块

module是一些关系比较紧密的项目。目的:聚合构建。<modules> ...</module>之间定义。

本地资源库

Maven的本地资源库是用来存储所有项目的依赖关系(插件jar和其他文件,这些文件被Maven下载)到本地文件夹。

中央存储库

当你建立一个 Maven 的项目,Maven 会检查你的 pom.xml 文件,以确定哪些依赖下载。首先,Maven 将从本地资源库获得 Maven 的本地资源库依赖资源,如果没有找到,然后把它会从默认的 Maven 中央存储库查找下载。

远程存储库

在Maven中,当你声明的库不存在于本地存储库中,也没有不存在于Maven中心储存库,该过程将停止并将错误消息输出到 Maven 控制台。
添加远程仓库(如Java.net或JBoss的储存库)示例:

<repositories>
    <repository>
        <id>java.net</id>
          <url>https://maven.java.net/content/repositories/public/</url>
    </repository>
    </repositories>

Maven依赖库查询顺序:
本地资源库->中央存储库->远程存储库。
因此当需要使用外部资源的时候,通过Maven可以自动将POM文件中的坐标对应的外部资源下载到本地资源库,此后的任何事情都有Maven控制管理, 因此其对依赖库管理是一个非常好的工具。
当Maven依赖库不能下载的时候,需要添加外部依赖项到POM中。
在正常的POM-dependency属性中添加如下语句:

 <systemPath>${basedir}srclibldapjdk.jar</systemPath>

Maven具有依赖传递,我们只需要在每个项目POM定义直接依赖关系。 Maven自动处理其余部分。

创建应用程序文档

通过使用mvn site命令可以一步到位创建应用程序的文档。
在Maven有目标目录中创建一个网站。即../target/site目录中创建了一个网站。其使用称为Doxia一个文件处理引擎,它会读取多个源格式转换为通用文档模型的文档。

Maven快照

当模块出现细微的修改时候,不需要修改版本号(从而不需要频繁的更换POM文件以及不会造成版本号的滥用),将版本号设置为SNAPSHOT,然后发布到私服中,在发布的过程中,Maven会自动为构件打上时间戳。Maven会自动从仓库中检查模块A的2.1-SNAPSHOT的最新构件,当发现有更新时便进行下载。
快照是一个特殊版本,指出目前开发复印件。

参考文献
1. Maven教程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 学习 Maven 需要有一定的 Java 编程基础,对于 Maven 的概念和使用方式也需要有一定的了解。另外,需要了解如何编写和管理项目依赖,以及如何使用 Maven 插件等。如果你之前没有接触过 Maven,建议先了解一些基本的概念和使用方法,例如 Maven 的生命周期、坐标、仓库等。 ### 回答2: 学习Maven需要一些基础知识。首先,需要了解Java编程语言和软件开发的基本概念和原理,以便理解Maven的作用和使用方式。其次,需要熟悉命令行操作以及基本的项目管理和构建知识,这有助于更好地使用Maven进行项目构建和管理。另外,了解项目构建管理工具的基本概念和工作原理也是必要的,这样能更好地理解Maven的工作方式和特点。最后,掌握XML的基本知识也是必要的,因为Maven项目的配置文件pom.xml采用XML格式进行编写和管理。当然,对于初学者来说,这些基础知识可以通过学习和实践逐步掌握,同时也可以通过查阅相关的文档和资料来加深理解。总之,学习Maven需要一些基础知识,但通过积极学习和实践,初学者也能逐步掌握并运用好这个项目构建管理工具。 ### 回答3: 学习Maven并不需要太多的基础知识,但有一些基本的编程和项目管理概念对于理解和使用Maven是很有帮助的。 首先,对Java编程语言有一定的了解是必要的,因为Maven主要用于构建和管理Java项目。了解Java的基础语法、面向对象编程原理以及常用的Java开发工具,能更好地理解和使用Maven。 其次,对于项目管理的基本概念也是必备的。Maven是一个强大的项目管理工具,能够帮助我们自动化构建、测试、打包和部署项目。了解项目的生命周期、依赖管理、版本控制以及发布流程等概念,可以更好地理解和使用Maven的各种功能。 另外,了解一些常用的构建工具和持续集成工具也是有益的。Maven与其他构建工具(如Ant)和持续集成工具(如Jenkins)有很好的兼容性和集成性,对它们有一定的了解可以更好地搭配使用Maven进行项目构建和持续集成。 总结来说,学习Maven需要有一定的Java编程基础、项目管理概念以及对一些相关的构建和持续集成工具的了解,这样才能更好地理解和使用Maven的各种功能,提高项目管理和开发的效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值