Java基础教程(22)-构建工具Maven的基本使用

简介: 【4月更文挑战第22天】Maven是Java项目管理及构建工具,简化构建、测试、打包和部署等任务。遵循约定优于配置原则,核心是`pom.xml`配置文件,用于管理依赖和项目信息。安装涉及下载、解压、配置环境变量。在IDEA中使用Maven创建项目,通过`pom.xml`添加依赖和管理版本。常用命令包括`clean`、`compile`、`test`、`package`、`install`和`deploy`。IDEA支持直接执行这些命令。

构建工具Maven的基本使用

基于Windows机器和IDEA开发工具

maven介绍:

Maven 是一款流行的项目管理和构建自动化工具,尤其在 Java 开发领域被广泛应用。它遵循约定优于配置的原则,提供了一套标准化的构建流程、依赖管理和项目信息管理机制,极大地简化了软件项目的构建、测试、打包、部署等工作。

Maven下载和配置

  • 下载:访问 Maven 官方网站 下载最新稳定版本的安装包。
  • 解压:将下载的 .zip.tar.gz 文件解压到指定目录

  • 设置环境变量

    • 添加系统环境变量 M2_HOME,指向 Maven 解压后的目录。
    • 在系统环境变量 Path 中加入 %M2_HOME%\bin,使得可以在命令行直接运行 mvn 命令。
  • 验证安装:在命令行中输入 mvn -v,如果显示 Maven 的版本信息,说明安装成功。

创建 Maven 项目

  • 在IntelliJ IDEA 等集成开发环境中,使用内置的 Maven 项目创建向导,填写项目信息并选择 Archetype。

在这里插入图片描述

Maven 项目的pom.xml

pom.xml 是 Maven 项目的核心配置文件,主要包括以下内容:

  • 基本信息groupId(组织标识)、artifactId(项目唯一标识)、version(项目版本)。
  • 依赖管理:声明项目所需的依赖,包括 groupIdartifactIdversion
  • 构建配置:设置构建过程中的插件、构建目标、资源过滤规则等。
  • 插件管理:集中定义插件的版本,避免在各个插件声明中重复。
  • 构建 Profiles:为不同的构建环境(如开发、测试、生产)定义特定配置。

一个pom.xml大概是这个样子:

<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>project</artifactId>
    <version>1.0-SNAPSHOT</version>

    <!-- 依赖项 -->
    <dependencies>
        <dependency>
            <groupId>...</groupId>
            <artifactId>...</artifactId>
            <version>...</version>
        </dependency>
        <!-- 更多依赖 -->
    </dependencies>

    <!-- 构建配置、插件等 -->
    <!-- ... -->
</project>

使用pom.xml管理项目依赖

  • 添加依赖:在 <dependencies> 标签内添加 <dependency> 标签,指定依赖的 groupIdartifactIdversion

  • 依赖范围:通过 scope 属性控制依赖在编译、测试、运行时的可见性,如 compiletestruntimeprovided 等。

  • 依赖调解:Maven 自动处理依赖传递和版本冲突。可以使用 <dependencyManagement> 标签集中管理版本。

maven常用插件

  • 在maven中常用插件有以下几个

    • maven-compiler-plugin:编译源代码,设置编译选项(如源码、目标码版本)。
    • maven-surefire-plugin:运行单元测试。
    • maven-jar-plugin:创建 JAR 包。
    • maven-war-plugin:创建 WAR 包。
    • maven-source-plugin:生成源码包。
    • maven-javadoc-plugin:生成 Java 文档。

    • 在pom.xml文件中添加插件

      <build><plugins> 标签内添加 <plugin> 标签,配置插件 ID、版本和目标(goal)。

maven常用命令:

  • 清理mvn clean 删除 target 目录下的编译结果、打包产物等。

  • 编译mvn compile 编译源代码,生成 .class 文件。

  • 测试

    • mvn test 编译并运行测试用例(如 JUnit、TestNG 等)。
    • mvn surefire-report:report 生成测试报告。
  • 打包

    • mvn package 编译、测试并生成最终打包文件(如 .jar.war.ear 等)。
  • 安装mvn install 将打包后的工件安装到本地仓库,供其他项目依赖。

  • 部署:(通常在 CI/CD 流程中)mvn deploy 将工件发布到远程仓库。

在IEAD中打开maven选项卡,可以选择后右键执行以上命令:

在这里插入图片描述

相关文章
|
19天前
|
Java 开发工具 Android开发
Kotlin教程笔记(26) -Kotlin 与 Java 共存(一)
Kotlin教程笔记(26) -Kotlin 与 Java 共存(一)
|
3月前
|
Java 开发者 UED
【实战宝典】Java异常处理大师级教程:throws关键字,让异常声明成为你的专属标签!
【实战宝典】Java异常处理大师级教程:throws关键字,让异常声明成为你的专属标签!
51 3
|
3天前
|
Java Maven Android开发
【Azure Developer】VS Code打包Java maven Project 遇见 BUILD FAILURE
Unknown lifecycle phase "lean". You must specify a valid lifecycle phase or a goal in the format <plugin-prefix>:<goal> or <plugin-group-id>:<plugin-artifact-id>[:<plugin-version>]:<goal>
|
6天前
|
JSON Java Maven
实现Java Spring Boot FCM推送教程
本指南介绍了如何在Spring Boot项目中集成Firebase云消息服务(FCM),包括创建项目、添加依赖、配置服务账户密钥、编写推送服务类以及发送消息等步骤,帮助开发者快速实现推送通知功能。
16 2
|
14天前
|
Java 数据库连接 编译器
Kotlin教程笔记(29) -Kotlin 兼容 Java 遇到的最大的“坑”
Kotlin教程笔记(29) -Kotlin 兼容 Java 遇到的最大的“坑”
|
17天前
|
Java 编译器 Android开发
Kotlin教程笔记(28) -Kotlin 与 Java 混编
本系列教程笔记详细讲解了Kotlin语法,适合希望深入了解Kotlin的开发者。对于需要快速学习Kotlin的小伙伴,推荐查看“简洁”系列教程。本篇笔记重点介绍了Kotlin与Java混编的技巧,包括代码转换、类调用、ProGuard问题、Android库开发建议以及相互调用时的注意事项。
19 3
|
19天前
|
Java 编译器 Android开发
Kotlin教程笔记(28) -Kotlin 与 Java 混编
Kotlin教程笔记(28) -Kotlin 与 Java 混编
20 3
|
19天前
|
安全 Java 编译器
Kotlin教程笔记(27) -Kotlin 与 Java 共存(二)
Kotlin教程笔记(27) -Kotlin 与 Java 共存(二)
|
23天前
|
Java Shell Maven
Flink-11 Flink Java 3分钟上手 打包Flink 提交任务至服务器执行 JobSubmit Maven打包Ja配置 maven-shade-plugin
Flink-11 Flink Java 3分钟上手 打包Flink 提交任务至服务器执行 JobSubmit Maven打包Ja配置 maven-shade-plugin
81 4
|
25天前
|
消息中间件 存储 JSON
rabbitmq基础教程(ui,java,springamqp)
本文提供了RabbitMQ的基础教程,包括如何使用UI创建队列和交换机、Java代码操作RabbitMQ、Spring AMQP进行消息发送和接收,以及如何使用不同的交换机类型(fanout、direct、topic)进行消息路由。
18 0
rabbitmq基础教程(ui,java,springamqp)

推荐镜像

更多