JavaWeb后端开发之Maven 2024介绍安装测试详解

简介: JavaWeb后端开发之Maven 2024介绍安装测试详解


Maven介绍

Maven是apache旗下的一个开源项目

是一款用于管理和构建java项目的工具

Maven 在后端开发中扮演着重要的角色,特别是在 Java 后端开发中。以下是 Maven 和后端开发的关系:

  1. 依赖管理: 后端开发通常需要使用各种第三方库和框架来实现功能,例如数据库连接库、Web 框架、安全框架等。Maven 可以帮助管理这些依赖关系,简化了在项目中使用第三方库的过程,同时也确保了依赖库的版本管理和一致性。
  2. 项目构建: 后端项目通常会包含大量的代码文件、配置文件和资源文件,而 Maven 可以帮助自动化项目的构建过程。通过 Maven,开发人员可以定义项目的构建规则和步骤,包括编译源代码、打包可执行文件、生成文档等,从而简化了项目的构建过程。
  3. 标准化项目结构: Maven 规定了一套标准的项目结构,这使得后端项目更易于理解和维护。遵循 Maven 的约定,开发人员可以将后端项目组织成一组标准的目录结构,包括源代码目录、资源目录、测试目录等,从而提高了项目的可读性和可维护性。
  4. 插件支持: Maven 拥有丰富的插件生态系统,提供了各种各样的插件来扩展其功能。后端开发人员可以利用这些插件来实现自动化部署、持续集成、代码质量检查等功能,从而提高了开发效率和代码质量。
  5. 团队协作: Maven 提供了一种统一的项目管理和构建工具,可以帮助团队成员更好地协作。通过 Maven,团队成员可以共享项目配置文件、依赖信息和构建规则,确保了项目在不同开发环境中的一致性和稳定性。

综上所述,Maven 在后端开发中发挥着重要作用,它简化了项目的管理和构建过程,提高了开发效率和代码质量,同时也促进了团队协作和项目的可维护性。

maven这款工具

我们只需要创建一个maven工程

当我们配置完成后

maven会自动联网下载依赖

然后我们在项目中就能直接使用了

不同的Java开发工具项目结构是不同的

我们在IDEA写的项目不能直接导入eclipse中

如果使用了Maven能解决

因为Maven为我们提供了统一的项目结构

在Maven中提供了一套标准化的项目构建方式

我们所开发的Java项目如果要运行时

要用Javac编译 再进行测试 打包 发布项目

Maven将其标准化 构建了一套标准化的操作流程

小结

模型

构建生命周期的各个阶段

我们可以根据插件来实现各种功能

这样我们就可以完成maven项目标准化的构建

项目对象模型POM

指可以通过POM.XML这个配置文件来完成一小部分的工程

依赖资源 也可以进行配置

私服可能公司里所有同事都连接这个仓库

只要有一个同事用到了架包

架包就能从中央仓库下载到远程仓库私服

这样其他同事就不用再连接中央仓库了

Maven安装

官方网站

Maven – Download Apache Maven

1.解压安装

bin目录存放的是可执行文件

项目的编译 打包 等一系列指令

conf目录里放的是配置文件

lib里放的是maven里的架包资源

2.配置本地仓库

修改配置文件

将第53行复制出来

并且还要指定本地仓库的地址

这里我直接放到桌面上便于管理

3.配置阿里云的私服 以便加速架包的下载

<mirror>
    <id>alimaven</id>
    <mirrorOf>central</mirrorOf>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
  </mirror>

4.配置系统环境变量

这样就可以在任意目录下使用maven

我们先复制maven的安装目录

我的是

C:\Users\ZDY\Desktop\maven-3.9.6

然后再此电脑右键 属性 高级系统设置

点击环境变量

变量名为 maven的安装目录

接下来还要在path环境变量中

将maven下的bin目录加到环境变量中

这就代表我们要将maven安装目录下的bin加到path环境变量

这样我们在任意目录下就可以使用maven

测试是否安装成功

如果能看到版本就代表maven已经配置成功

IDEA配置Maven环境

绝大部分时候都是在IDEA中集成Maven进行使用

创建一个空项目

并且配置项目结构

随后就是配置Maven

手动去添加

再去设置配置和本地仓库

配置JRE

修改字节码版本

当然也可以一劳永逸

可以直接配置全局变量

直接设置所有的IDEA项目中所有的Maven配置

IDEA创建Maven项目

这样就得到了

main目录下面存放的是项目的资源 java是源代码 resources是配置文件

test目录下面存放的是 测试的资源 java是源代码

并不需要配置资源所以并不会生成 当然我们也可以自己生成

测试

其中target文件夹里放的就是字节码文件

Maven的坐标

IDEA导入Maven项目

依赖配置

修改配置文件

注意要刷新

添加成功

安装插件可以帮助我们查找依赖

<?xml version="1.0" encoding="UTF-8"?>
<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>org.example</groupId>
    <artifactId>untitled</artifactId>
    <version>1.0-SNAPSHOT</version>
 
    <properties>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
 
    <!--依赖配置-->
    <dependencies>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.3</version>
        </dependency>
    </dependencies>
    
</project>

小结

依赖传递

其实我们引入这一个架包

其他两个架包也会被引入

这就叫依赖传递

打开A项目的pom文件

A项目依赖B项目只需要通过依赖配置的方式依赖B项目的坐标

C项目依赖了一个工具包commons-io

打开Maven面板查看架构 会自动构建

IDEA里有一个可视化依赖传递的功能

可以打开 显示 可视图

排除依赖

A虽然依赖B 但是B中的junit就不会出现在A里

依赖范围

我们用一个标签scope来控制作用范围

举例

这样主程序就不能使用logback的依赖

只有测试中可以用

打包架包时打开目录时就不会包含logback的依赖

生命周期

Maven的生命周期就是为了对所有的maven项目构建过程进行抽象和统一

就是描述项目的构建要经历哪些阶段

项目清理 项目编译 项目打包 项目部署

每一套生命周期都有一套体系 分为各个阶段

在一套生命周期运行后面的阶段进行项目的构建 前面的阶段也会运行

生命周期的各个阶段的执行方式

实际操作

跳过某一阶段

这样的话日志中会打印  

用命令行执行maven指令

实际上Maven的生命周期和生命周期的各个阶段都是抽象的概念

他并不执行具体操作

具体操作是与Maven绑定的各种插件来执行的

因为Maven本质是一个插件执行框架

所有的操作都是插件来执行的、

目录
相关文章
|
机器学习/深度学习 人工智能 并行计算
AI部署架构:A100、H100、A800、H800、H20的差异以及如何选型?开发、测试、生产环境如何进行AI大模型部署架构?
AI部署架构:A100、H100、A800、H800、H20的差异以及如何选型?开发、测试、生产环境如何进行AI大模型部署架构?
AI部署架构:A100、H100、A800、H800、H20的差异以及如何选型?开发、测试、生产环境如何进行AI大模型部署架构?
|
7月前
|
存储 测试技术 API
数据驱动开发软件测试脚本
今天刚提交了我的新作《带着ChatGPT玩转软件开发》给出版社,在写作期间跟着ChatGPT学到许多新知识。下面分享数据驱动开发软件测试脚本。
271 0
|
9月前
|
人工智能 Java API
后端开发必看:零代码实现存量服务改造成MCP服务
本文介绍如何通过 **Nacos** 和 **Higress** 实现存量 Spring Boot 服务的零代码改造,使其支持 MCP 协议,供 AI Agent 调用。全程无需修改业务代码,仅通过配置完成服务注册、协议转换与工具映射,显著降低改造成本,提升服务的可集成性与智能化能力。
2617 1
|
10月前
|
传感器 人工智能 JavaScript
鸿蒙开发:DevEcoTesting中的稳定性测试
DevEcoTesting主要的目的也是用于软件的测试,可以让开发者无需复杂的配置,即可一键执行测试任务,同时提供了测试报告和分析,无论是对于开发者还是测试同学来说,都是一个非常方便的工具。
315 3
鸿蒙开发:DevEcoTesting中的稳定性测试
|
9月前
|
前端开发 Java 数据库连接
后端开发中的错误处理实践:原则与实战
在后端开发中,错误处理是保障系统稳定性的关键。本文介绍了错误分类、响应设计、统一处理机制及日志追踪等实践方法,帮助开发者提升系统的可维护性与排障效率,做到防患于未然。
|
9月前
|
敏捷开发 运维 数据可视化
DevOps看板工具中的协作功能:如何打破开发、测试与运维之间的沟通壁垒
在DevOps实践中,看板工具通过可视化任务管理和自动化流程,提升开发与运维团队的协作效率。它支持敏捷开发、持续交付,助力团队高效应对需求变化,实现跨职能协作与流程优化。
|
11月前
|
存储 消息中间件 前端开发
PHP后端与uni-app前端协同的校园圈子系统:校园社交场景的跨端开发实践
校园圈子系统校园论坛小程序采用uni-app前端框架,支持多端运行,结合PHP后端(如ThinkPHP/Laravel),实现用户认证、社交关系管理、动态发布与实时聊天功能。前端通过组件化开发和uni.request与后端交互,后端提供RESTful API处理业务逻辑并存储数据于MySQL。同时引入Redis缓存热点数据,RabbitMQ处理异步任务,优化系统性能。核心功能包括JWT身份验证、好友系统、WebSocket实时聊天及活动管理,确保高效稳定的用户体验。
579 4
PHP后端与uni-app前端协同的校园圈子系统:校园社交场景的跨端开发实践
|
9月前
|
运维 jenkins 测试技术
"还在苦等开发部署环境?3步教你用Jenkins拿回测试主动权"
测试工程师最头疼的问题是什么?依赖开发部署环境! 开发延期→测试时间被压缩→紧急上线后BUG频出→测试背锅。传统流程中,测试被动等待部署,效率低下。而Jenkins自动化部署让测试人员自主搭建环境,实现: ✅ 随时触发测试,不再苦等开发 ✅ 部署效率提升10倍,抢回测试时间 ✅ 改善团队协作,减少互相甩锅 学习Jenkins部署能力,成为高效测试工程师,告别被动等待!
|
前端开发 JavaScript 关系型数据库
2025 年前端与后端开发方向的抉择与展望-优雅草卓伊凡
2025 年前端与后端开发方向的抉择与展望-优雅草卓伊凡
850 5
2025 年前端与后端开发方向的抉择与展望-优雅草卓伊凡
|
人工智能 小程序 NoSQL
【一步步开发AI运动小程序】二十一、如何将AI运动项目配置持久化到后端?
本文介绍基于云智「Ai运动识别引擎」的运动配置持久化方案,旨在优化小程序或Uni APP中AI运动识别能力。通过将运动检测参数(如`Key`、`Name`、`TickMode`、`rules`或`samples`)持久化到后端,可避免因频繁调整运动参数而重新发布应用,提升用户体验。持久化数据结构支持规则和姿态样本存储,适用于关系数据库、文件或文档数据库(如MongoDB)。此外,云智还提供运动自动适配工具及「AI乐运动」产品,助力快速实现AI体育、全民健身等场景。

热门文章

最新文章

推荐镜像

更多