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

相关文章

Spring Security+JWT如何实现前后端分离权限控制

《SpringSecurity+JWT如何实现前后端分离权限控制》本篇将手把手教你用SpringSecurity+JWT搭建一套完整的登录认证与权限控制体系,具有很好的参考价值,希望对大家... 目录Spring Security+JWT实现前后端分离权限控制实战一、为什么要用 JWT?二、JWT 基本结构

java解析jwt中的payload的用法

《java解析jwt中的payload的用法》:本文主要介绍java解析jwt中的payload的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java解析jwt中的payload1. 使用 jjwt 库步骤 1:添加依赖步骤 2:解析 JWT2. 使用 N

springboot项目如何开启https服务

《springboot项目如何开启https服务》:本文主要介绍springboot项目如何开启https服务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录springboot项目开启https服务1. 生成SSL证书密钥库使用keytool生成自签名证书将

Java实现优雅日期处理的方案详解

《Java实现优雅日期处理的方案详解》在我们的日常工作中,需要经常处理各种格式,各种类似的的日期或者时间,下面我们就来看看如何使用java处理这样的日期问题吧,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言一、日期的坑1.1 日期格式化陷阱1.2 时区转换二、优雅方案的进阶之路2.1 线程安全重构2

Java中的JSONObject详解

《Java中的JSONObject详解》:本文主要介绍Java中的JSONObject详解,需要的朋友可以参考下... Java中的jsONObject详解一、引言在Java开发中,处理JSON数据是一种常见的需求。JSONObject是处理JSON对象的一个非常有用的类,它提供了一系列的API来操作J

Maven的使用和配置国内源的保姆级教程

《Maven的使用和配置国内源的保姆级教程》Maven是⼀个项目管理工具,基于POM(ProjectObjectModel,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告... 目录1. 什么是Maven?2.创建⼀个Maven项目3.Maven 核心功能4.使用Maven H

SpringBoot多数据源配置完整指南

《SpringBoot多数据源配置完整指南》在复杂的企业应用中,经常需要连接多个数据库,SpringBoot提供了灵活的多数据源配置方式,以下是详细的实现方案,需要的朋友可以参考下... 目录一、基础多数据源配置1. 添加依赖2. 配置多个数据源3. 配置数据源Bean二、JPA多数据源配置1. 配置主数据

将Java程序打包成EXE文件的实现方式

《将Java程序打包成EXE文件的实现方式》:本文主要介绍将Java程序打包成EXE文件的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录如何将Java程序编程打包成EXE文件1.准备Java程序2.生成JAR包3.选择并安装打包工具4.配置Launch4

SpringBoot内嵌Tomcat临时目录问题及解决

《SpringBoot内嵌Tomcat临时目录问题及解决》:本文主要介绍SpringBoot内嵌Tomcat临时目录问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录SprinjavascriptgBoot内嵌Tomcat临时目录问题1.背景2.方案3.代码中配置t

SpringBoot使用GZIP压缩反回数据问题

《SpringBoot使用GZIP压缩反回数据问题》:本文主要介绍SpringBoot使用GZIP压缩反回数据问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot使用GZIP压缩反回数据1、初识gzip2、gzip是什么,可以干什么?3、Spr