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本质是一个插件执行框架

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

目录
相关文章
|
3月前
|
缓存 运维 数据库
【测试人员兼职指南】利用专业技能:如何从测试转向开发赚钱
本文分享了作者作为测试人员如何利用专业技能转向开发来兼职赚钱的经验,包括分析和解决登录页面跳转、避免重复账号注册、用户登录后首页显示用户名以及添加退出功能等问题,并提供了Django项目中使用sqlite3数据库和后台管理的扩展技巧。
82 1
【测试人员兼职指南】利用专业技能:如何从测试转向开发赚钱
|
27天前
|
测试技术 网络安全
什么是软件测试? 软件测试都有什么岗位 ?软件测试和调试的区别? 软件测试和开发的区别? 一位优秀的测试人员应该具备哪些素质? 软件测试等相关概念入门篇
文章全面介绍了软件测试的基本概念、目的、岗位分类、与开发和调试的区别,并阐述了成为优秀测试人员应具备的素质和技能。
105 1
什么是软件测试? 软件测试都有什么岗位 ?软件测试和调试的区别? 软件测试和开发的区别? 一位优秀的测试人员应该具备哪些素质? 软件测试等相关概念入门篇
|
11天前
|
人工智能 监控 测试技术
云应用开发平台测试
云应用开发平台测试
27 2
|
27天前
|
敏捷开发 测试技术
开发模型(瀑布、螺旋、scrum) 和 测试模型(V、W)、增量和迭代、敏捷(思想)及敏捷开发 scrum
文章详细介绍了软件开发过程中的不同开发模型(瀑布、螺旋、Scrum)和测试模型(V模型、W模型),以及增量和迭代的概念,最后阐述了敏捷思想及其在敏捷开发(如Scrum)中的应用。
39 0
开发模型(瀑布、螺旋、scrum) 和 测试模型(V、W)、增量和迭代、敏捷(思想)及敏捷开发 scrum
|
1月前
|
Java Maven
Maven 项目测试
接下来我们要学习如何构建和测试这个项目。
39 5
|
2月前
|
测试技术 持续交付 UED
软件测试的艺术与科学:平衡创新与质量的探索在软件开发的波澜壮阔中,软件测试如同灯塔,指引着产品质量的方向。本文旨在深入探讨软件测试的核心价值,通过分析其在现代软件工程中的应用,揭示其背后的艺术性与科学性,并探讨如何在追求技术创新的同时确保产品的高质量标准。
软件测试不仅仅是技术活动,它融合了创造力和方法论,是软件开发过程中不可或缺的一环。本文首先概述了软件测试的重要性及其在项目生命周期中的角色,随后详细讨论了测试用例设计的创新方法、自动化测试的策略与挑战,以及如何通过持续集成/持续部署(CI/CD)流程优化产品质量。最后,文章强调了团队间沟通在确保测试有效性中的关键作用,并通过案例分析展示了这些原则在实践中的应用。
67 1
|
2月前
|
SQL Java 数据库连接
JavaWeb基础3——Maven基础&MyBatis
构建工具Maven、Maven安装配置、基本使用、IDEA使用Maven、依赖管理、插件、Mybatis、核心配置文件mybatis-config.xml、Mapper代理开发、配置文件实现增删改查、Mybatis参数传递、注解实现增删改查
JavaWeb基础3——Maven基础&MyBatis
|
2月前
|
测试技术 UED 开发者
软件测试的艺术:从代码审查到用户反馈的全景探索在软件开发的宇宙中,测试是那颗确保星系正常运转的暗物质。它或许不总是站在聚光灯下,但无疑是支撑整个系统稳定性与可靠性的基石。《软件测试的艺术:从代码审查到用户反馈的全景探索》一文,旨在揭开软件测试这一神秘面纱,通过深入浅出的方式,引领读者穿梭于测试的各个环节,从细微处着眼,至宏观视角俯瞰,全方位解析如何打造无懈可击的软件产品。
本文以“软件测试的艺术”为核心,创新性地将技术深度与通俗易懂的语言风格相结合,绘制了一幅从代码审查到用户反馈全过程的测试蓝图。不同于常规摘要的枯燥概述,这里更像是一段旅程的预告片,承诺带领读者经历一场从微观世界到宏观视野的探索之旅,揭示每一个测试环节背后的哲学与实践智慧,让即便是非专业人士也能领略到软件测试的魅力所在,并从中获取实用的启示。
|
3月前
|
测试技术 API
软件测试:Postman 工具的使用。开发及测试均需要掌握的测试工具
这篇文章详细介绍了Postman工具的各个模块功能,包括创建请求、集合、环境、自动化测试等,并解释了如何使用Postman进行GET、POST、PUT和DELETE等常见HTTP请求的测试。
|
3月前
|
测试技术 C# 开发者
“代码守护者:详解WPF开发中的单元测试策略与实践——从选择测试框架到编写模拟对象,全方位保障你的应用程序质量”
【8月更文挑战第31天】单元测试是确保软件质量的关键实践,尤其在复杂的WPF应用中更为重要。通过为每个小模块编写独立测试用例,可以验证代码的功能正确性并在早期发现错误。本文将介绍如何在WPF项目中引入单元测试,并通过具体示例演示其实施过程。首先选择合适的测试框架如NUnit或xUnit.net,并利用Moq模拟框架隔离外部依赖。接着,通过一个简单的WPF应用程序示例,展示如何模拟`IUserRepository`接口并验证`MainViewModel`加载用户数据的正确性。这有助于确保代码质量和未来的重构与扩展。
63 0

推荐镜像

更多