Maven技术总结

Apache Maven是一个项目管理和综合工具,基于项目对象模型(POM)概念,提供标准化构建系统。本文深入介绍Maven的核心概念,如pom.xml、dependencyManagement、插件管理和模块构建,同时涵盖SNAPSHOT版本、profile使用以及远程存储库部署。
摘要由CSDN通过智能技术生成

Table of Contents

概述

pom.xml

Maven项目编译

maven项目测试编译及运行

如何生成JAR包并将其安装在本地存储库中?

SNAPSHOT版本是指的什么

如何使用maven plugin

如何在远程存储库中部署jar?

Maven module


概述

Apache Maven是一个软件项目管理工具。 基于项目对象模型( project object model - POM)的概念,Maven可以从一个中心信息管理项目的构建,报告和文档。

Maven,是犹太语里面的一个词,意味知识的积累。最初是为了简化一个名为Jakarta Turbine项目中的构建过程而开始开发的。当时的项目中有几个项目都有自己的Ant构建文件,并且这些文件全部都略有不同,他们使用到的JAR包是在CVS里面检查。 我们想要的是使用一种标准化的方法来构建项目,这种方法能明确定义项目组成的内容,使得项目的发布简便,以及有办法能够跨多个项目共享JAR包的。

后来就诞生了maven工具,现在已经可用于构建和管理任何基于Java的项目。 maven使Java开发人员的日常工作更容易,并且通常有助于理解任何基于Java的项目。

Maven的主要目标是让开发人员在最短的时间内理解开发工作的完整状态。 为了实现这一目标,Maven试图处理以下几个方面的问题:

  • 使构建过程变得简单:虽然使用Maven并不能消除对底层机制的了解,但Maven确实提供了很多对细节的屏蔽。
  • 提供统一的构建系统:Maven允许项目使用其项目对象模型(POM)和一组由所有项目共享的插件来构建,从而提供统一的构建系统。 一旦熟悉了Maven项目的构建方式,就会自动了解所有Maven项目的构建方式,从而在尝试了解许多项目时节省大量时间。
  • 提供优质的项目信息:

    Maven提供了大量有用的项目信息,这些信息部分来自POM,部分来自项目的来源。 例如,Maven可以提供:

更改直接从源代码管理创建的日志文档

交叉引用的来源
邮件列表
依赖列表
单元测试报告包括报道
随着Maven的改进,所提供的信息集将得到改善,所有这些对Maven的用户都是透明的。

      其他产品也可以提供Maven插件,所有这些仍然基于POM。

  • 提供最佳实践开发指南:

    Maven旨在收集最佳实践开发的现有原则,并使指导项目朝这个方向变得容易。

    例如,单元测试的规范,执行和报告是使用Maven的正常构建周期的一部分。 目前的单元测试最佳实践被用作指南:

    将测试源代码保存在单独但并行的源代码树中
    使用测试用例命名约定来定位和执行测试
    让测试用例设置他们的环境,而不是依赖于自定义构建以进行测试准备。
    Maven还旨在协助项目工作流程,例如发布和问题管理。

    Maven还建议了一些关于如何布局项目目录结构的指南,这样一旦你学习了怎样布局,你就可以轻松地驾驭任何其他使用Maven的项目。

  • 允许透明迁移到新功能:

    Maven为用户端提供了一种简单的方法来更新他们的安装,以便他们可以利用对Maven本身所做的任何更改。出于这个原因,从第三方或Maven本身安装新的或更新的插件已经变得微不足道了。

pom.xml

pom.xml包含此项目的项目对象模型(POM)。 POM是Maven的基本工作单元。 这一点很重要,因为Maven本质上是以项目为中心的,因为一切都围绕着项目的概念。 简而言之,POM包含有关项目的所有重要信息,并且基本上是一站式的,用于查找与项目相关的任何内容。 了解POM很重要,入门maven的工程师有必要了解POM简介。

下面是一个非常简单的POM,但仍然包含了每个POM包含的关键元素,所以我们可以通过每个POM元素来熟悉POM要点:】

<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.mycompany.app</groupId>
  <artifactId>my-app</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>Maven Quick Start Archetype</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>
  • project:这是所有Maven pom.xml文件中的顶级元素。
  • modelVersion此元素指示此POM使用的对象模型的版本。模型本身的版本很少发生变化,但如果Maven开发人员认为有必要更改模型,则必须确保使用的稳定性。
  • gr
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值