【Maven】基于IDEA进行Maven工程的创建、构建

文章目录

  • 一、基于IDEA创建Maven工程
    • 1. 概念梳理Maven工程的GAVP
    • 2. Idea构建Maven Java SE工程
    • 3. Idea构建Maven Java Web工程
      • 3.1 创建一个maven的javase工程
      • 3.2 修改pom.xml文件打包方式
      • 3.3 设置web资源路径和web.xml路径
    • 4. Maven工程项目结构说明
  • 二、基于IDEA进行Maven工程构建
    • 1. 构建概念和构建过程
    • 2. 可视化方式项目构建
    • 3. 构建插件、命令、生命周期命令之间关系

一、基于IDEA创建Maven工程

1. 概念梳理Maven工程的GAVP

Maven 中的 GAVP 是指 GroupId、ArtifactId、Version、Packaging 等四个属性的缩写。
其中前三个是必要的(在创建项目的时候指定),而 Packaging 属性为可选项(有默认值)。这四个属性主要为每个项目在maven仓库中做一个标识,类似人的姓-名!方便后期项目之间相互引用依赖等!

GAV遵循规则:

​ 1) GroupID 格式:com.{公司/BU }.业务线.[子业务线],最多 4 级。例如:com.taobao.tddl

​ 2) ArtifactID 格式:产品线名-模块名。

​ 3) Version版本号格式推荐:主版本号.次版本号.修订号

1. 主版本号:当做了不兼容的 API 修改,或者增加了能改变产品方向的新功能。2. 次版本号:当做了向下兼容的功能性新增(新增类、接口等)。3. 修订号:修复 bug,没有修改方法签名的功能加强,保持 API 兼容性。例如: 初始→1.0.0  修改bug → 1.0.1  功能调整 → 1.1.1等

Packaging定义规则:

​ 指示将项目打包为什么类型的文件,idea根据packaging值,识别maven项目类型!

  • jar(默认值),代表普通的Java工程,打包以后是.jar结尾的文件。
  • war,代表Java的web工程,打包以后.war结尾的文件。
  • pom,代表不会打包,用来做继承的父工程。

2. Idea构建Maven Java SE工程

在这里插入图片描述

当创建完毕maven工程之后,idea中会自动打开Maven视图,如下图:

在这里插入图片描述

3. Idea构建Maven Java Web工程

3.1 创建一个maven的javase工程

在这里插入图片描述

3.2 修改pom.xml文件打包方式

修改位置:项目下/pom.xml

	   <groupId>com.lm</groupId><artifactId>maven_web</artifactId><version>1.0-SNAPSHOT</version><!-- 新增一列打包方式packaging --><packaging>war</packaging>

3.3 设置web资源路径和web.xml路径

点击File–>Project Structure在这里插入图片描述
在这里插入图片描述在这里插入图片描述

  1. 刷新和校验在这里插入图片描述在这里插入图片描述

4. Maven工程项目结构说明

Maven 是一个强大的构建工具,它提供一种标准化的项目结构。
以下是 Maven Web 程序的文件结构及每个文件的作用:

|-- pom.xml                               # Maven 项目管理文件,用于描述项目的依赖和构建配置等信息 
|-- src|-- main                              # 项目主要代码|   |-- java                          # Java 源代码目录|   |   `-- com/example/myapp         # 开发者代码主目录|   |       |-- controller            # 存放 Controller 层代码的目录|   |       |-- service               # 存放 Service 层代码的目录|   |       |-- dao                   # 存放 DAO 层代码的目录|   |       `-- model                 # 存放数据模型的目录|   |-- resources                     # 资源目录,存放配置文件、静态资源等|   |   |-- log4j.properties          # 日志配置文件|   |   |-- spring-mybatis.xml        # Spring Mybatis 配置文件|   |   `-- static                    # 存放静态资源的目录|   |       |-- css                   # 存放 CSS 文件的目录|   |       |-- js                    # 存放 JavaScript 文件的目录|   |       `-- images                # 存放图片资源的目录|   `-- webapp                        # 存放 WEB 相关配置和资源|       |-- WEB-INF                   # 存放 WEB 应用配置文件|       |   |-- web.xml               # Web 应用的部署描述文件|       |   `-- classes               # 存放编译后的 class 文件|       `-- index.html                # Web 应用入口页面`-- test                              # 项目测试代码|-- java                          # 单元测试目录`-- resources                     # 测试资源目录

二、基于IDEA进行Maven工程构建

1. 构建概念和构建过程

项目构建是指将源代码、依赖库和资源文件等转换成可执行或可部署的应用程序的过程。

在这里插入图片描述

2. 可视化方式项目构建

在这里插入图片描述

注意:打包(package)和安装(install)的区别

打包是将工程打成jar或war文件,保存在target目录下

安装是将当前工程所生成的jar或war文件,安装到本地仓库,会按照坐标保存到指定位置

3. 构建插件、命令、生命周期命令之间关系

构建生命周期
构建生命周期可以理解成是一组固定构建命令的有序集合,触发周期后的命令,会自动触发周期前的命令!!!

构建周期作用:``会简化构建过程```
例如:项目打包 mvn clean package即可。

插件、命令、周期三者关系

周期→包含若干命令→包含若干插件
使用周期命令构建,简化构建过程!
最终进行构建的是插件!

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Halcon 学习之路 生成棋盘格 set_grayval 算子

gen_imag_const 创建灰度图像 gen_image_const(Image&#xff0c;Type&#xff0c;Width&#xff0c;Height) 算子gen_image_const创建指定大小的图像&#xff0c;图像的宽度和高度由Width和Height决定 Type 像素类型 byte :每像素1字节&#xff0c;无符号&#xff08;0-255&…

一个基于C# Winform开源免费的通用快速开发框架,内置完整的权限架构!

前言 今天大姚给大家分享一个基于C# Winform开源免费&#xff08;GPL-2.0开源协议&#xff09;的通用快速开发框架&#xff0c;内置完整的权限架构&#xff1a;WinformDevFramework。 项目介绍 WinformDevFramework是一个基于C# Winform开源免费&#xff08;GPL-2.0开源协议…

通俗解释机器学习中的召回率、精确率、准确率

先说个题外话&#xff0c;暴击一下乱写博客的人&#xff0c;网络上很多地方分不清准确率和精确率&#xff0c;在这里先正确区分一下精确率和准确率&#xff0c;以及他们的别称。 切入正题 很多人分不清召回率和精确率的区别&#xff0c;即使记住了公式&#xff0c;过段时间还是…

【数据结构】二叉树(门槛极低的系统性理解)

本篇文章将进行图文讲述该种数据结构&#xff01;看完一定不会让你失望&#xff0c;好的文章不需要过多的浮夸&#xff0c;质量就是深得人心的砝码&#xff01;下面我总结了最形象的趣味理解方法&#xff0c;一遍看完终身不忘&#xff01;制作不易&#xff0c;能否一键三连呢&a…

【漫话机器学习系列】114.逻辑 Sigmoid 函数

逻辑 Sigmoid 函数详解 1. 引言 逻辑回归&#xff08;Logistic Regression&#xff09;是机器学习中常用的分类算法&#xff0c;而 Sigmoid 函数 是逻辑回归的核心数学工具。Sigmoid 函数能够将任意实数映射到 (0,1) 之间&#xff0c;因此特别适用于概率估计。在这篇文章中&a…

SpringBoot项目启动报错:PathVariable annotation was empty on param 0.

报错信息 SpringBoot项目启动报错&#xff1a;Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name com.obstetric.archive.feignclient.DictServiceClient: FactoryBean threw exception on object creation; nested excepti…

Java 设计模式:软件开发的精髓与艺

目录 一、设计模式的起源二、设计模式的分类1. 创建型模式2. 结构型模式3. 行为型模式三、设计模式的实践1. 单例模式2. 工厂模式3. 策略模式四、设计模式的优势五、设计模式的局限性六、总结在软件开发的浩瀚星空中,设计模式犹如一颗颗璀璨的星辰,照亮了开发者前行的道路。它…

Unity小功能实现:鼠标点击移动物体

1、功能描述 当玩家点击鼠标时&#xff0c;场景中的物体会移动到鼠标点击的位置。这个功能可以用于控制角色移动、放置物体等场景。 2、实现步骤 创建Unity项目&#xff1a;首先&#xff0c;打开Unity并创建一个新的3D项目。 添加3D物体&#xff1a;在场景中创建一个3D物体&am…

避坑!用Docker搞定PHP开发环境搭建(Mac、Docker、Nginx、PHP-FPM、XDebug、PHPStorm、VSCode)

本次更新主要是对环境版本进行了更新&#xff0c;例如php 7.3.7升级到了7.3.8&#xff0c;另外之前的版本有同学踩了坑&#xff0c;主要是官方docker镜像php:7.3.7-fpm和php:7.3.8-fpm使用了不同版本的debian&#xff0c;后面会提到&#xff0c;请各位同学留意。 因为最近换电脑…

Spring Boot集成Jetty、Tomcat或Undertow及支持HTTP/2协议

目录 一、常用Web服务器 1、Tomcat 2、Jetty 3、Undertow 二、什么是HTTP/2协议 1、定义 2、特性 3、优点 4、与HTTP/1.1的区别 三、集成Web服务器并开启HTTP/2协议 1、生成证书 2、新建springboot项目 3、集成Web服务器 3.1 集成Tomcat 3.2 集成Jetty 3.3 集成…

京东web 详情 cfe滑块分析

声明: 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 逆向分析 data response.json() pri…

电池管理系统(BMS)架构详细解析:原理与器件选型指南

BMS&#xff08;电池管理系统&#xff09;架构详细讲解 从你提供的BMS&#xff08;Battery Management System&#xff09;架构图来看&#xff0c;主要涉及到电池监控模块、通信模块、功率控制模块等部分。下面我将详细讲解该架构的各个功能模块及其工作原理。 1. 电池管理核…

Linux常见基本指令(二)

目录 1、Linux基础指令 文本查看 cat指令 more指令 less指令 head指令&tail指令 时间相关指令 查找、搜索相关指令 find指令 which指令 whereis指令 alias指令 grep指令 打包压缩和解压缩 zip指令&#xff08;压缩&#xff09; unzip&#xff08;解压&…

HarmonyOS学习第12天:解锁表格布局的奥秘

表格布局初相识 不知不觉&#xff0c;我们在 HarmonyOS 的学习旅程中已经走到了第 12 天。在之前的学习里&#xff0c;我们逐步掌握了 HarmonyOS 开发的各种基础与核心技能&#xff0c;比如组件的基本使用、布局的初步搭建等&#xff0c;这些知识就像一块块基石&#xff0c;为我…

动态规划刷题

文章目录 动态规划三步问题题目解析代码 动态规划 1. 状态表示&#xff1a;dp[i]&#xff0c;表示dp表中i下标位置的值 2. 状态转移方程&#xff1a;以i位置位置的状态&#xff0c;最近的一步来划分问题&#xff0c;比如可以将状态拆分成前状态来表示现状态&#xff0c;dp[i] …

大语言模型微调的基本概念介绍

大型语言模型&#xff08;LLMs&#xff09;正在以惊人的速度发展&#xff0c;LLM微调的潜力更是如此。大型语言模型的生命周期有几个关键步骤&#xff0c;今天我们将要介绍这个周期中最丰富、最耗时的一部分——LLM微调过程。 大语言模型的生命周期 在深入了解大型语言模型&a…

PyCharm接入本地部署DeepSeek 实现AI编程!【支持windows与linux】

今天尝试在pycharm上接入了本地部署的deepseek&#xff0c;实现了AI编程&#xff0c;体验还是很棒的。下面详细叙述整个安装过程。 本次搭建的框架组合是 DeepSeek-r1:1.5b/7b Pycharm专业版或者社区版 Proxy AI&#xff08;CodeGPT&#xff09; 首先了解不同版本的deepsee…

Spring MVC 程序开发(1)

目录 1、什么是 SpringMVC2、返回数据2.1、返回 JSON 对象2.2、请求转发2.3、请求重定向2.4、自定义返回的内容 1、什么是 SpringMVC 1、Tomcat 和 Servlet 分别是什么&#xff1f;有什么关系&#xff1f; Servlet 是 java 官方定义的 web 开发的标准规范&#xff1b;Tomcat 是…

Notepad++下载地址【亲测好用】

网上下载链接五花八门&#xff0c;最终找到了一个官方下载链接。 本文章就用来记录Notepad下载网址 https://github.com/notepad-plus-plus/notepad-plus-plus/tags

LeetCode 873. Length of Longest Fibonacci Subsequence(2025/2/27每日一题)

昨天工作耽搁了&#xff0c;没来得及打卡每日一题&#xff0c;今日补上&#xff1a; 标题&#xff1a;Length of Longest Fibonacci Subsequence 题目&#xff1a; 例子&#xff1a; Example 1: Input: arr [1,2,3,4,5,6,7,8] Output: 5 Explanation: The longest subsequ…