软件设计之Maven(1)

news2024/9/27 17:37:25

软件设计之Maven(1)

路线图推荐:
【Java学习路线-极速版】【Java架构师技术图谱】
尚硅谷新版Maven教程(高效入门maven,上手又快又稳)
资料可以去尚硅谷官网免费领取

学习内容:

  1. Maven简介
  2. 安装与环境配置
  3. Maven工程GAVP含义
  4. Maven的Web工程
  5. Maven工程构建命令
  6. 插件、命令、生命周期

1、Maven简介

Maven是一个项目管理和构建工具,主要用于Java项目。它提供了一个标准化的构建流程,使开发者能够快速、可靠地管理项目的构建、依赖和文档生成。Maven的核心思想是“约定优于配置”,即通过约定的方式减少配置的复杂性。

依赖管理工具

Maven作为依赖管理工具,通过在pom.xml文件中声明所需的外部库和版本,自动解析并下载这些依赖及其传递依赖,从而确保项目在构建和运行时能够找到所有必要的库。这一过程简化了依赖管理,避免了版本冲突,提高了构建的可靠性和可重复性。
在这里插入图片描述

构建工具

Maven作为构建工具,提供了一套标准化的构建生命周期插件机制,自动化地执行项目的编译、测试、打包和发布等任务。通过定义清晰的构建过程和项目结构,Maven帮助开发者高效地管理项目构建,确保各个阶段有序进行,从而提高了开发效率和团队协作能力。
在这里插入图片描述

2、安装与环境配置

(1) 下载的压缩包解压完一般会是一个apache-maven-3.8.8文件夹,我的MAVEN_HOME路径是D:\Maven\apache-maven-3.8.8
(2) 验证安装在命令行或终端输入:mvn -v
在这里插入图片描述

功能配置

找到settings.xml文件,具体操作可以看视频

<!-- 配置本地仓库地址-->
 <localRepository>D:\maven-repository</localRepository>
 <!-- 配置国内阿里镜像-->
 <mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>
</mirror>
<!--在profiles节点(标签)下添加jdk编译版本 268行附近-->
<profile>
    <id>jdk-17</id>
    <activation>
      <activeByDefault>true</activeByDefault>
      <jdk>17</jdk>
    </activation>
    <properties>
      <maven.compiler.source>17</maven.compiler.source>
      <maven.compiler.target>17</maven.compiler.target>
      <maven.compiler.compilerVersion>17</maven.compiler.compilerVersion>
    </properties>
</profile>

3、Maven工程GAVP含义

在这里插入图片描述

不同的Java文件夹

在这里插入图片描述

4、Maven的Web工程

(1)方式一:

其中在设置完pom.xml并刷新之后,可以在文件->项目结构->模块中添加web.xml,并设置好存放位置,具体文件结构如下图所示:

在这里插入图片描述
在这里插入图片描述

(2)方式二:

设置->插件->Marketplace搜索JBLJavaToWeb,随即安装(别忘记点右下角的应用按钮!!!),在你想要添加Web工程的模块下右键,点击JBLJavaToWeb即可。
在这里插入图片描述

5、Maven工程构建命令

  • compile:在名字为maven_java模块工程内,写java类代码,通过cmd指令进入该项目的绝对路径 “E:\Java30days\Project\Maven_test\maven_java”即该项目pom.xml所在文件夹路径),运行mvn compile,生成target文件
  • clean:删除目标目录 (target) 及其内容
  • test: 执行项目中的测试代码
    • 测试类的名称通常以被测试类的名称为基础,后缀加上 Test(例如,如果被测试类是 UserService,测试类可以命名为 UserServiceTest)
    • 测试方法应该描述其测试的功能,通常以 test 开头(例如 testAddUser)
    • 测试报告在target文件的surefire-reports文件夹中,里面描述了测试的结果
  • package:将项目源代码编译并打包成可发布的格式(如 JAR 或 WAR 文件)
    • 打包之前,Maven 会运行 src/test/java 中的测试用例,确保代码在打包前通过所有测试。如果测试失败,打包过程会被中止。
    • 打包类型会根据 pom.xml 中的 packaging 标签类型(如 jar 或 war)
    • 插件版本: 确保使用的 Maven 插件(如 maven-war-plugin 或 maven-jar-plugin)的版本与 JDK 兼容。如果插件不支持所使用的 JDK 版本,也会导致打包失败。
  • install: 将项目打包并安装到本地 Maven 仓库,通过将构建的项目安装到本地 Maven 仓库,可以在本地的其他 Maven 项目中引用这个项目,方便开发和测试。
命令描述
mvn compile编译项目,生成target文件
mvn test-compile编译项目(包含测试项目),生成target文件
mvn package打包项目,生成jar或war文件
mvn clean清理编译或打包后的项目结构
mvn install打包后上传到maven本地仓库
mvn deploy只打包,上传到maven私服仓库
mvn site生成站点
mvn test执行测试源码

IDEA可视化构建

双击可以执行类似 mvn-xxx的效果
在这里插入图片描述

Maven坐标的使用

Maven 坐标的格式:(groupId:artifactId:version)
JAR 包在本地仓库中的路径结构如下:其中本地仓库之前我们设置过,我的是:D:\Maven\maven-repository

<local-repo>/
└── <groupId>
    └── <artifactId>
        └── <version>
            └── <artifactId>-<version>.jar

6\插件、命令、生命周期

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2170591.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【机器学习(九)】分类和回归任务-多层感知机(Multilayer Perceptron,MLP)算法-Sentosa_DSML社区版

文章目录 一、算法概念二、算法原理&#xff08;一&#xff09;感知机&#xff08;二&#xff09;多层感知机1、隐藏层2、激活函数sigma函数tanh函数ReLU函数 3、反向传播算法 三、算法优缺点&#xff08;一&#xff09;优点&#xff08;二&#xff09;缺点 四、MLP分类任务实现…

【html网页制作】国庆节日主题网页制作含js轮播(5页面附效果源码)

HTMLCSS节日国庆主题网页制作 &#x1f354;涉及知识&#x1f964;写在前面&#x1f367;一、网页主题&#x1f333;二、网页效果菜单切换效果PageA、整体页Page1、首页Page2、节日由来Page3、节日视频Page4、庆祝活动Page5、留言 &#x1f40b;三、网页架构与技术3.1 脑海构思…

# linux从入门到精通(二)

linux从入门到精通&#xff08;二&#xff09; 一、Linux系统的安装&#xff1a;新建VM虚拟机 1、Linux版本的选择 1&#xff09;版本选择&#xff1a;CentOS 6.5 【镜像一般都是xxx.iso文件】 2&#xff09;为什么不选择7.x版本&#xff1f; 6.x的各种系统操作模式是基础…

python绘制图像

柱状图 import os# 输入想要存储图像的路径 os.chdir(D:)import matplotlib.pyplot as plt import numpy as np # 改变绘图风格 import seaborn as snssns.set(color_codesTrue)cell [gen7, xgspon, 3081GB, vettel, totalplay, other] pvalue [21, 20, 18, 13, 7, 34]width…

​​XrayGLM原理与部署

接上一篇&#xff1a;VisualGLM-6B——原理与部署-CSDN博客 XrayGLM技术背景与原理 XrayGLM 是一种基于 VisualGLM-6B 微调开发的多模态医学影像诊断模型&#xff0c;专门用于处理医学影像&#xff08;如 X 光胸片&#xff09;的自动诊断和报告生成任务。该模型旨在为中文医学…

第8章_索引的创建与设计原则

1. 索引的声明与使用 1.1 索引的分类 MySQL的索引包括普通索引、唯一性索引、全文索引、单列索引、多列索引和空间索引等。 从 功能逻辑 上说&#xff0c;索引主要有 4 种&#xff0c;分别是普通索引、唯一索引、主键索引、全文索引。 按照 物理实现方式 &#xff0c;索引可以…

医疗器械中的国产光耦合器浅析

光耦合器&#xff0c;也称为光隔离器&#xff0c;在确保医疗器械的安全性和性能方面发挥着关键作用。通过在系统的不同部分之间提供电气隔离&#xff0c;它们可以防止信号干扰、保护敏感元件并保护患者免受电击。近年来&#xff0c;国产光耦合器制造商一直在加紧生产可靠的高性…

时也命也!转念的力量(深度好文)——早读(逆天打工人爬取热门微信文章解读)

时也命也 引言Python 代码第一篇 洞见 转念的力量&#xff08;深度好文&#xff09;第二篇 意想不到的收入结尾 早上上交所宕机 很多股票都横成直线 我的股却跳了一下水 我怕出什么监管事故 跟着卖出去了 然后查了一下 发现是上交所被买爆了 我想了一下 服务器问题 那么能否事后…

OpenEuler配置本地yum源

0x00 服务器版本 将本地镜像传输至服务器 操作步骤如下 # 创建一个目录用于挂载光盘映像 mkdir /media/cdrom/# 将光盘映像挂载到指定目录 mount /kvm/openeuler.iso /media/cdrom/#进入Yum仓库配置目录 cd /etc/yum.repos.d/# 备份原有的 openEuler.repo 文件 mv openEuler.…

解读: 火山引擎自研vSwitch技术

最近看到一篇文章介绍火山云的网络vSwitch技术&#xff0c;虽然是2022年的比较老的介绍&#xff0c;但是对于我们看到vSwitch技术的发展还是有些参考的。下面就截取了当时火山vSwitch关心的几个问题&#xff0c;做了一下梳理。 背景 在云计算发展过程中&#xff0c;虚拟网络的…

国内光耦合器制造商如何满足特殊行业的需求

在航空航天、国防、电信等行业&#xff0c;对定制解决方案的需求正在增长。通用光耦合器可能并不总是适合这些专业领域的特定要求&#xff0c;因为这些领域必须满足独特的环境条件、尺寸限制和性能基准。国内光耦合器制造商一直在加紧努力&#xff0c;提供可定制的解决方案&…

从 0 到 1:互联网产品经理核心技能全解析

在互联网的浩瀚海洋中&#xff0c;产品经理如同领航员&#xff0c;决定着产品从无到有的走向和命运。从 0 到 1 打造一款互联网产品&#xff0c;需要产品经理具备多方面的核心技能。今天&#xff0c;我们就来详细解读这些关键能力。 一、洞察市场趋势 时刻关注行业动态 互联网…

AOT源码解析4.1-对输入数据和mask进行处理(Associating Objects with Transformers for Video Object Segmentation)

论文阅读 papergithub论文阅读笔记AOT源码解析1-数据集处理AOT源码解析2-encoderdecoderAOT源码解析3-模型训练AOT源码解析4.1-model主体AOT源码解析4.2-model主体AOT源码解析4.3-model主体AOT源码解析4.4-model主体AOT源码解析4.5-model主体 输入数据 VOS的数据集处理操作可…

Python基础语句教学

Python是一种高级的编程语言&#xff0c;由Guido van Rossum于1991年创建。它以简单易读的语法和强大的功能而闻名&#xff0c;被广泛用于科学计算、Web开发、数据分析等领域。 Python的应用领域广泛&#xff0c;可以用于开发桌面应用程序、Web应用、游戏、数据分析、人工智能等…

【中台资料】数字中台建设资料合集(Word,PPT)

目录 1 编写目的 2 背景概述 3 中台概念 4 推动企业组织模式演进 5 建设方法 6 中台内容 7 数据安全体系 8 参考资料 软件全套资料部分文档清单&#xff1a; 工作安排任务书&#xff0c;可行性分析报告&#xff0c;立项申请审批表&#xff0c;产品需求规格说明书&#xff0c;需…

Redis 的 Java 客户端有哪些?官方推荐哪个?

Redis 官网展示的 Java 客户端如下图所示&#xff0c;其中官方推荐的是标星的3个&#xff1a;Jedis、Redisson 和 lettuce。 Redis 的 Java 客户端中&#xff0c;Jedis、Lettuce 和 Redisson 是最常用的三种。以下是它们的详细比较&#xff1a; Jedis&#xff1a; 线程安全&…

springboot在线教学平台

基于springbootvue实现的在线教学平台 &#xff08;源码L文ppt&#xff09;4-069 4.1系统结构设计 这些功能可以充分满足在线教学平台的需求。此系统功能较为全面如下图系统功能结构如图4-1所示。 图4-1功能结构图 4.2系统功能模块设计 在线教学平台的使用者主要有二类…

AI视频技术:引领影视剧拍摄的未来

大家好&#xff0c;我是Shelly&#xff0c;一个专注于输出AI工具和科技前沿内容的AI应用教练&#xff0c;体验过300款以上的AI应用工具。关注科技及大模型领域对社会的影响10年。关注我一起驾驭AI工具&#xff0c;拥抱AI时代的到来。 当科技遇见艺术&#xff0c;一场视听盛宴正…

华为GaussDB数据库之Yukon安装与使用

一、Yukon简介 Yukon&#xff08;禹贡&#xff09;&#xff0c;基于openGauss、PostgreSQL、GaussDB数据库扩展地理空间数据的存储和管理能力&#xff0c;提供专业的GIS&#xff08;Geographic Information System&#xff09;功能&#xff0c;赋能传统关系型数据库。 Yukon 支…

破局汽车智能化浪潮:Tire 1供应商的网络优化与升级策略

在汽车行业经历电动化、智能化的深刻变革中&#xff0c;Tier 1供应商正面临着前所未有的挑战与机遇。Tier 1 供应商&#xff0c;即一级供应商&#xff0c;是汽车产业链中占据关键地位的合作伙伴。这类供应商不仅直接向整车制造商提供核心总成和模块&#xff0c;还深度参与整车的…