Maven构建工具:Java项目的不可或缺之选

2024-01-26 00:04

本文主要是介绍Maven构建工具:Java项目的不可或缺之选,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

引言

在Java开发领域,构建工具是项目中至关重要的一环。Maven(Maven Apache)是一个强大的构建工具,用于管理项目的构建、依赖和文档等方面。本篇博文将介绍如何配置和使用Maven来构建和管理Java项目。

第一部分:Maven基础概念

在这里插入图片描述

1.1 什么是Maven?

Maven是一个基于项目对象模型(Project Object Model, POM)的项目管理工具。它提供了一种标准的方式来构建和管理项目,包括项目的编译、测试、打包、发布等操作。
自动化构建工具还有:Ant, Gradle。

第二部分:Maven 的核心概念

2.1 Maven 工程约定目录结构

java-maven

|---src                          源代码
|---|---main                     主程序
|---|---|---java                 主程序的 java 源码
|---|---|---resources            主程序的配置文件
|---|---test                     测试程序
|---|---|---java                 测试程序的 java 源码
|---|---|---resources            测试程序的配置文件
|---pom.xml                      Maven工程的核心配置文件。
名称基本信息
modelVersionMaven 模型的版本,对于 Maven2 和 Maven3 来说,它只能是 4.0.0
groupId组织 id,一般是公司域名的倒写。
artifactId项目名称,也是模块名称,对应 groupId 中 项目中的子项目。
version项目的版本号。如果项目还在开发中,是不稳定版本,通常在版本后带-SNAPSHOT
packaging项目打包的类型,可以使 jar、war、rar、ear、pom,默认是 jar
dependency管理 jar 包
properties定 义 配 置 属 性设置为UTF-8,防止中文乱码
buildbuild 表示与构建相关的配置,例如设置编译插件的 jdk 版本
parent声明要继承的父工程的 pom 配置
modules使用 modules 聚合的其它模块

2.2 仓库

1、Maven 的插件,插件也是一些 jar,这些 jar 可以完成一定的功能。
2、我们自己开发项目的模块
3、第三方框架或工具的 jar 包
本地仓库:本机当前电脑上的资源存储位置,为本机上所有 Maven工程提供服务
远程仓库:不在本机上, 通过网络才能使用。多电脑共享使用的
①:中央仓库:通过Internet访问,为全世界所有 Maven工程服务。 最权威的。
②:中央仓库的镜像:架设在不同位置,欧洲,美洲,亚洲等每个洲都有若干的服务器,为中央仓库分担流量。减轻中央仓库
的访问,下载的压力。所在洲的用户首先访问的是本洲的镜像服务器。
③:私服:在局域网环境中部署的服务器,为当前局域网范围内的所有 Maven工程服务。公司中常常使用这种方式。
资源搜索地址:https://mvnrepository.com/
在这里插入图片描述

maven-search:插件搜索
在这里插入图片描述

第三部分:Maven的常用命令

3.1 mvn clean

清理项目,删除target目录。

mvn clean

3.2 mvn compile

编译项目源代码。

mvn compile

3.3 mvn test

运行项目的测试单元。

mvn test

3.4 mvn package

将项目打包,生成JAR或WAR文件。

mvn package

3.5 mvn install

将项目打包并安装到本地仓库,以供其他项目引用。

mvn install

3.6 mvn deploy

部署主程序

mvn deploy

第四部分:插件

maven 过程构建周期,由 maven 的插件 plugin 来执行完成。
官网插件说明:http://maven.apache.org/plugins/

第五部分:依赖管理

5.1 依赖的范围

依赖的范围:compiletestprovided,默认采用 compile

在这里插入图片描述

第六部分:Maven 常用设置

6.1 全局变量

在 Maven 的 pom.xml 文件中,用于定义全局变量,POM 中通过${property_name}的形式引用变量的值。
定义全局变量:

 <properties><mysql.version>8.0.28</mysql.version></properties>

6.2 引用全局变量:

<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql.version}</version>
</dependency>

6.3 Maven 系统采用的变量:

<properties><maven.compiler.source>1.8</maven.compiler.source> 源码编译 jdk 版本<maven.compiler.target>1.8</maven.compiler.target> 运行代码的 jdk 版本<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 项目构建使用的编码,避免中文乱
码<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 生成报告的编码</properties>

6.4 指定资源位置

src/main/java 和 src/test/java 这两个目录中的所有*.java 文件会分别在 comile 和 test-comiple 阶段被编译,编译结果分别放到了 target/classes 和 targe/test-classes 目录中,但是这两个目录中的其他文件都会被忽略掉,如果需要把 src 目录下的文件包放到 target/classes 目录,作为输出的 jar 一部分。需要指定资源文件位置。以下内容放到< buid>标签中。

    <build><resources><resource><directory>src/main/java</directory><!--所在的目录--><includes><!--包括目录下的.properties,.xml 文件都会扫描到--><include>**/*.properties</include><include>**/*.xml</include></includes>
<!--                filtering 选项 false 不启用过滤器, *.property 已经起到过滤的作用了 --><filtering>false</filtering></resource></resources></build>

第七部分:使用Maven构建Java项目

7.1 创建Maven项目

使用以下命令在命令行中创建一个新的Maven项目:

mvn archetype:generate -DgroupId=com.example -DartifactId=my-java-project -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

在这里插入图片描述

7.2 构建和运行项目

在项目目录下运行以下命令来构建和运行项目:

mvn clean package
java -jar target/my-project-1.0-SNAPSHOT.jar

结语

Maven作为Java项目的构建工具,具有强大的功能和丰富的生态系统。通过本篇博文,你应该对Maven的基本概念、常用命令以及配置文件有了更深入的了解。使用Maven可以帮助你更轻松地管理项目的构建和依赖,提高开发效率。希望本篇博文能够帮助你更好地使用Maven构建和管理Java项目。

这篇关于Maven构建工具:Java项目的不可或缺之选的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/645056

相关文章

Java实现Excel与HTML互转

《Java实现Excel与HTML互转》Excel是一种电子表格格式,而HTM则是一种用于创建网页的标记语言,虽然两者在用途上存在差异,但有时我们需要将数据从一种格式转换为另一种格式,下面我们就来看看... Excel是一种电子表格格式,广泛用于数据处理和分析,而HTM则是一种用于创建网页的标记语言。虽然两

java图像识别工具类(ImageRecognitionUtils)使用实例详解

《java图像识别工具类(ImageRecognitionUtils)使用实例详解》:本文主要介绍如何在Java中使用OpenCV进行图像识别,包括图像加载、预处理、分类、人脸检测和特征提取等步骤... 目录前言1. 图像识别的背景与作用2. 设计目标3. 项目依赖4. 设计与实现 ImageRecogni

Java中Springboot集成Kafka实现消息发送和接收功能

《Java中Springboot集成Kafka实现消息发送和接收功能》Kafka是一个高吞吐量的分布式发布-订阅消息系统,主要用于处理大规模数据流,它由生产者、消费者、主题、分区和代理等组件构成,Ka... 目录一、Kafka 简介二、Kafka 功能三、POM依赖四、配置文件五、生产者六、消费者一、Kaf

Java访问修饰符public、private、protected及默认访问权限详解

《Java访问修饰符public、private、protected及默认访问权限详解》:本文主要介绍Java访问修饰符public、private、protected及默认访问权限的相关资料,每... 目录前言1. public 访问修饰符特点:示例:适用场景:2. private 访问修饰符特点:示例:

详解Java如何向http/https接口发出请求

《详解Java如何向http/https接口发出请求》这篇文章主要为大家详细介绍了Java如何实现向http/https接口发出请求,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 用Java发送web请求所用到的包都在java.net下,在具体使用时可以用如下代码,你可以把它封装成一

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学

Java内存泄漏问题的排查、优化与最佳实践

《Java内存泄漏问题的排查、优化与最佳实践》在Java开发中,内存泄漏是一个常见且令人头疼的问题,内存泄漏指的是程序在运行过程中,已经不再使用的对象没有被及时释放,从而导致内存占用不断增加,最终... 目录引言1. 什么是内存泄漏?常见的内存泄漏情况2. 如何排查 Java 中的内存泄漏?2.1 使用 J

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma

Java 字符数组转字符串的常用方法

《Java字符数组转字符串的常用方法》文章总结了在Java中将字符数组转换为字符串的几种常用方法,包括使用String构造函数、String.valueOf()方法、StringBuilder以及A... 目录1. 使用String构造函数1.1 基本转换方法1.2 注意事项2. 使用String.valu

基于Python开发电脑定时关机工具

《基于Python开发电脑定时关机工具》这篇文章主要为大家详细介绍了如何基于Python开发一个电脑定时关机工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 简介2. 运行效果3. 相关源码1. 简介这个程序就像一个“忠实的管家”,帮你按时关掉电脑,而且全程不需要你多做