Maven项目管理工具参考知识

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhaobryant/article/details/73609047 本笔记主要...
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhaobryant/article/details/73609047

本笔记主要记录关于Maven知识体系的一些Pages和Tips!

一、Maven入门手册

阅读内容:Maven Getting Started GuideThe Philosophy of Maven 以及 The History of Maven

该文主要涉及的主要知识点包括:

  • 什么是Maven

  • 如何配置Maven项目

  • 如何对Maven应用进行编译/测试/安装

  • 快照(SNAPSHOT)版本简述

  • 如何添加资源文件以及进行过滤

  • 如何使用外部依赖

  • 如何将自己的Jar部署到远端中央仓库

  • 如何构建其他类型的项目

  • 如何一次构建多个项目

二、Maven配置

阅读内容:Configuring Maven

该文提到Maven的配置分为三个层级:

  • Project:项目级,通过pom.xml静态配置。
  • Installation:安装级,Maven安装时配置。
  • User:用户级,对于不同的用户有不同的配置。

项目级配置内容定义了对一个项目所需的基本配置信息,该配置与环境和使用者无关,而其他的则是对于当前运行环境的配置。

对于项目级配置内容,一般通过pom.xml进行静态配置。对于用户级配置内容,一般通过${user.home}/.m2/settings.xml进行配置。

三、Maven项目骨架

阅读内容:Introduction to Archetypes

该文对archetype的概念进行了解释,archetype是Maven项目模板工具包。

An archetype is defined as an original pattern or model from which all other things of the same kind are made.

使用方法:

mvn archetype:generate

Maven中archetype常见类型有:

  • maven-archetype-archetype
  • maven-archetype-j2ee-simple
  • maven-archetype-mojo
  • maven-archetype-plugin
  • maven-archetype-plugin-site
  • maven-archetype-portlet
  • maven-archetype-quickstart
  • maven-archetype-simple
  • maven-archetype-site
  • maven-archetype-site-simple
  • maven-archetype-webapp

四、Maven项目的标准目录布局

阅读内容:Introduction to the Standard Directory Layout

该文介绍了Maven项目的标准目录布局。在进行Maven项目开发时,应该遵循该目录布局进行文件的创建和使用,具体如下:

${basedir}
|-- pom.xml
|-- src
|   |-- main
|   |   `-- java
|   |   `-- resources
|   |   `-- filters
|   `-- test
|   |   `-- java
|   |   `-- resources
|   |   `-- filters
|   `-- it
|   `-- assembly
|   `-- site
`-- LICENSE.txt
`-- NOTICE.txt
`-- README.txt

其中,有:

  • src/main/java 项目的源代码所在的目录
  • src/main/resources 项目的资源文件所在的目录
  • src/main/filters 项目的资源过滤文件所在的目录
  • src/main/webapp 如果是web项目,则该目录是web应用源代码所在目录,如html文件和web.xml等
  • src/test/java 测试代码所在的目录
  • src/test/resources 测试相关的资源文件所在的目录
  • src/test/filters 测试相关的资源过滤文件所在的目录
  • src/it 集成测试代码所在的目录,主要是供别的插件使用的
  • src/assembly 组件(Assembly)描述符所在的目录
  • src/site 站点文件
  • LICENSE.txt 项目的许可文件
  • NOTICE.txt 该项目依赖的库的注意事项
  • README.txt 项目的readme文件

五、POM文件介绍

阅读内容:Introduction to the POM

A Project Object Model or POM is the fundamental unit of work in Maven. It is an XML file that contains information about the project and configuration details used by Maven to build the project.

文中对POM文件的基本元素进行了简单的介绍,包括:

  • project
  • modelVersion
  • groupId
  • artifactId
  • packaging
  • version
  • name
  • url
  • description

该文介绍了两个概念:Super POMMinimal POM

  • Super POM

Super POM 是Maven的默认POM。所有的POM都会继承该Super POM,也就是说,当你创建项目时,你所使用的POM都是继承了该Super POM的。

其位于$M2_HOME/lib/maven-model-builder-xxx.jarorg/apache/maven/model/pom-4.0.0.xml中。

  • Minimal POM

一个Minimal POM必须包含下面的指定内容:project/modelVersion/groupId/artifactId/version。另外,可以看到,Minimal POM并未强制要求设置repositories,因为其继承了Super POM,在Super POM中定义了默认的repositories信息。

另外,在该文中,个人觉得很重要的一部分就是关于项目间关系的举例介绍。

  • 项目继承(project inheritance)

项目继承在各自的子模块的POM中指定parent信息。对于如何使用项目继承,文中给出了两个例子Example1和Example2(重点理解)。

  • 项目聚合(project aggregation)

与项目继承不同的是,其放弃在子模块的POM中指定parent信息,而是在parent POM中指定模块信息。如何实现项目聚合?首先,更改parent POM的packaging值为pom;然后,在parent POM中注册modules信息。对于具体案例,文中给出了Example3和Example4两个例子(重点理解)。

  • 同时使用项目继承和项目聚合

Opendaylight中使用该方式进行项目管理。

对于项目关系,总结三条原则:

  1. 对每一个child POM指定其parent POM
  2. 改变parent POM的packaging属性为pom
  3. 在parent注册每个子模块信息

文中给出了Example5的案例进行参考。

同时,该文介绍了如何在POM文件中使用变量。

六、Maven仓库

阅读内容:Introduction to Repositories

该文主要对于Maven的仓库进行了简要的介绍。对于仓库的介绍,也可以参考《Maven实战》的第6章关于仓库的讲解。

七、Maven依赖机制详解

阅读内容:Introduction to Dependency Mechanism

Dependency management is one of the features of Maven that is best known to users and is one of the areas where Maven excels.

该文主要介绍了Maven的依赖机制,解释了传递性依赖/依赖范围/依赖管理/系统依赖等内容。着重掌握文中的几个例子。

另外,《Maven实战》的第5章对于坐标和依赖的讲解也很仔细,可以参照阅读。

八、小结

Maven的核心内容就是上面的一些知识点,推荐阅读官网文档和《Maven实战》等书籍,结合实践加深理解。

目录
相关文章
|
6月前
|
Java Linux Maven
私有仓库工具Nexus Maven如何部署并实现远程访问管理界面
私有仓库工具Nexus Maven如何部署并实现远程访问管理界面
174 0
|
Java Devops jenkins
【devops】三、Build阶段工具——配置maven
【devops】三、Build阶段工具——配置maven
123 0
|
Java 应用服务中间件 Apache
自动化构建工具Maven
自动化构建工具Maven
|
24天前
|
Java API Apache
除了 Maven,还有哪些工具可以管理项目的依赖和版本冲突
除了Maven,常用的项目依赖管理和版本冲突解决工具有Gradle、Ivy、Ant+Ivy、SBT等。这些工具各有特点,适用于不同的开发环境和需求。
|
13天前
|
Java 持续交付 项目管理
使用Maven进行项目管理:提高Java Web开发的效率
Maven 是一款强大的项目管理和构建自动化工具,广泛应用于Java社区。它通过依赖管理、构建生命周期管理、插件机制和多模块项目支持等功能,简化了项目的构建过程,提高了开发效率。本文将介绍Maven的核心功能及其在Java Web开发中的应用。
31 0
|
3月前
|
Java Maven 容器
Maven使用IDEA自带工具打包,同时将lib下的jar包打入,双击jar包可直接运行
使用IntelliJ IDEA的Artifacts功能,可以将项目依赖的第三方jar包打包进jar文件中,实现双击jar包即可直接运行。
Maven使用IDEA自带工具打包,同时将lib下的jar包打入,双击jar包可直接运行
|
3月前
|
Java 持续交付 项目管理
Maven是一款基于Apache许可的项目管理和构建自动化工具,在Java开发中极为流行。
Maven是一款基于Apache许可的项目管理和构建自动化工具,在Java开发中极为流行。它采用项目对象模型(POM)来描述项目,简化构建流程。Maven提供依赖管理、标准构建生命周期、插件扩展等功能,支持多模块项目及版本控制。在Java Web开发中,Maven能够自动生成项目结构、管理依赖、自动化构建流程并运行多种插件任务,如代码质量检查和单元测试。遵循Maven的最佳实践,结合持续集成工具,可以显著提升开发效率和项目质量。
52 1
|
3月前
|
Java 编译器 测试技术
项目管理工具Maven的简单配置示例
【8月更文挑战第11天】这段内容介绍了如何通过Maven快速搭建并配置一个Java项目。首先需确保已安装Maven,接着可通过命令行创建一个基础项目结构,定义`groupId`、`artifactId`等基本信息。项目根目录下的`pom.xml`文件是核心配置文件,用于声明依赖库如JUnit,并配置构建插件如Maven Compiler Plugin以指定Java编译版本。最后,通过执行`mvn clean install`命令完成项目的清理与构建。这个流程适合初学者快速上手Maven项目管理。
|
4月前
|
Java 编译器 项目管理
如何在Java中使用Maven进行项目管理
如何在Java中使用Maven进行项目管理
|
4月前
|
Java jenkins 持续交付
Jenkins是开源CI/CD工具,用于自动化Java项目构建、测试和部署。通过配置源码管理、构建触发器、执行Maven目标,实现代码提交即触发构建和测试
【7月更文挑战第1天】Jenkins是开源CI/CD工具,用于自动化Java项目构建、测试和部署。通过配置源码管理、构建触发器、执行Maven目标,实现代码提交即触发构建和测试。成功后,Jenkins执行部署任务,发布到服务器或云环境。使用Jenkins能提升效率,保证软件质量,加速上线,并需维护其稳定运行。
129 0

推荐镜像

更多