【Maven】003-基于 IDEA 创建 Maven 工程

【Maven】003-基于 IDEA 创建 Maven 工程

文章目录

  • 【Maven】003-基于 IDEA 创建 Maven 工程
  • 一、关于 Maven 工程的 GAVP
    • 1、GAVP 简介
    • 2、GAV 坐标规范
    • 3、Packaging 定义规则
  • 二、基于 IDEA 创建 Maven 工程
    • 1、创建 Maven 项目
    • 2、创建结果
    • 3、项目结构说明

一、关于 Maven 工程的 GAVP

1、GAVP 简介

Maven工程的 GAVP 指的是 Group、Artifact、Version、Packaging。这是 Maven 项目的基本坐标,用于唯一标识和定位项目。

  • Group(组织): 表示项目所属的组织或公司,一般以域名的反转形式命名。例如,com.example
  • Artifact(项目名): 表示项目的名称,即项目的唯一标识符。例如,my-project
  • Version(版本): 表示项目的版本号。Maven使用语义化版本号(Semantic Versioning)规范,例如,1.0.0
  • Packaging(打包方式): 表示项目的打包方式,通常是 JAR、WAR、或者其他格式。例如,jar

这些元素一起组成了一个唯一的 GAVP 坐标,用于在 Maven 仓库中标识和检索项目的特定版本。在项目的pom.xml文件中,你可以看到类似以下的配置:

<groupId>com.example</groupId>
<artifactId>my-project</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>

2、GAV 坐标规范

  1. GroupID 格式
    • 使用格式为com.{公司/BU}.业务线.[子业务线],最多4级。
    • {公司/BU} 例如:alibaba/taobao/tmall/aliexpress等,BU一级;子业务线可选。
    • 示例:com.taobao.tddl 或 com.alibaba.sourcing.multilang。
  2. ArtifactID 格式
    • 使用格式为产品线名-模块名。
    • 语义不重复不遗漏,建议先到仓库中心查证。
    • 示例:tc-client / uic-api / tair-tool / bookstore。
  3. Version版本号格式推荐
    • 主版本号.次版本号.修订号。
    • 主版本号:做了不兼容的API修改或增加了能改变产品方向的新功能。
    • 次版本号:做了向下兼容的功能性新增,如新增类、接口等。
    • 修订号:修复bug,没有修改方法签名的功能增强,保持API兼容性。
    • 例如:初始→1.0.0,修改bug→1.0.1,功能调整→1.1.1等。

3、Packaging 定义规则

项目打包类型及packaging属性说明:

  • jar类型
    • packaging属性为jar(默认值)。
    • 代表普通的 Java 工程,打包后生成以.jar结尾的文件。
  • war类型
    • packaging属性为war
    • 代表 Java 的 web 工程,打包后生成以.war结尾的文件。
  • pom类型
    • packaging属性为pom
    • 代表不会进行实际的打包操作,主要用于做继承的父工程

在使用 IDEA 等工具时,根据项目的packaging值,可以识别项目的类型。这有助于工具在构建、部署等方面的正确操作。

二、基于 IDEA 创建 Maven 工程

1、创建 Maven 项目

image-20240113105010480

2、创建结果

image-20240113105107396

3、项目结构说明

下面是常规结构说明,未严格按照“创建结果”进行!

Maven 项目通常遵循一定的标准结构,这有助于组织和管理项目的源代码、资源文件以及构建配置。以下是一般的 Maven 项目结构说明:

  1. src 目录
    • src/main/java:主要的Java源代码目录。
    • src/main/resources:主要的资源文件目录,如配置文件等。
    • src/test/java:测试用例的Java源代码目录。
    • src/test/resources:测试用例的资源文件目录。
  2. target 目录
    • 构建输出目录,包括编译后的类文件、打包后的JAR/WAR文件等。Maven默认会将构建输出放在此目录。
  3. pom.xml
    • 项目的POM(Project Object Model)文件,包含项目的配置信息、依赖管理等。
  4. .gitignore(可选):
    • Git版本控制的忽略文件配置,用于指定哪些文件或目录不纳入版本管理。
  5. .mvn目录(可选):
    • 包含 Maven 的配置文件,例如.mvn/wrapper/maven-wrapper.properties,用于支持 Maven Wrapper。
  6. 其他自定义目录
    • 根据项目的需要,可能会有其他自定义的目录,例如存放文档、脚本或其他资源的目录。

示例结构:

my-maven-project
|-- src
|   |-- main
|       |-- java
|       |-- resources
|-- target
|-- pom.xml
|-- .gitignore
|-- .mvn
    |-- wrapper
        |-- maven-wrapper.properties

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

特征工程-特征处理(一)

特征处理-&#xff08;离散型特征处理&#xff09; 完成特征理解和特征清洗之后&#xff0c;我们要进行特征工程中最为重要和复杂的一步了——特征处理 离散型特征处理 离散型特征通常为非连续值或以字符串形式存在的特征&#xff0c;离散型特征通常来讲是不能直接喂入模型中…

HandlerInterceptor拦截器 postHandle执行addHeader无效,postHandle执行setStatus无效的解决方案

问题描述 想在postHandle方法里执行addHeader方法来补充一些Header信息&#xff08;如分页信息&#xff09;&#xff0c;但是最后执行却未如期显示 拦截器源码 import com.zhangziwa.practisesvr.utils.response.ResponseContext; import jakarta.servlet.http.HttpServletR…

必看!2023年机器人领域十大事件!

原创 | 文 BFT机器人 2023年&#xff0c;机器人产业快速发展&#xff0c;成就了机器人领域的一个又一个里程碑。机器人行业涌现了许多令人瞩目的事件&#xff0c;实现了重大突破&#xff0c;展示了机器人技术在各个领域的广泛应用和革命性变革。 本文将对2023年机器人领域的十…

【MATLAB】REMD_LSTM神经网络时序预测算法

有意向获取代码&#xff0c;请转文末观看代码获取方式~也可转原文链接获取~ 1 基本定义 REMD-LSTM神经网络时序预测算法是一种结合了REMD&#xff08;Reservoir Enhanced Multi-scale Deep Learning&#xff09;算法和长短期记忆神经网络&#xff08;LSTM&#xff09;的时间序…

gem5学习(12):理解gem5 统计信息和输出——Understanding gem5 statistics and output

目录 一、config.ini 二、config.json 三、stats.txt 官方教程&#xff1a;gem5: Understanding gem5 statistics and output 在运行 gem5 之后&#xff0c;除了仿真脚本打印的仿真信息外&#xff0c;还会在根目录中名为 m5out 的目录中生成三个文件&#xff1a; config.i…

企业网络两层和三层架构部署有何差异

知识改变命运&#xff0c;技术就是要分享&#xff0c;有问题随时联系&#xff0c;免费答疑&#xff0c;欢迎联系&#xff01; 厦门微思网络​​​​​​ https://www.xmws.cn华为认证\华为HCIA-Datacom\华为HCIP-Datacom\华为HCIE-Datacom Linux\RHCE\RHCE 9.0\RHCA\ Oracle OC…

如何用mixlab-nodes实现LOGO生成的应用DEMO?#这就是生产力

ComfyUI的工作流&#xff0c;可以把一件需要重复的事情变成一个流水线&#xff0c;自动完成&#xff0c;再加上高度可自定义的节点生态&#xff0c;可以添加各种批量化的能力&#xff0c;这样就有了非常强大的内容生产力。 本期&#xff0c;主要介绍mixlab-nodes的3个生产力节…

《 乱弹篇(二)》

题记 昨&#xff08;2024年1月12日&#xff09;天&#xff0c;既然笔者因感到写时评文力不从心&#xff0c;新辟一专栏《乱弹篇》&#xff0c;开始了“ 东西南北&#xff0c;古今中外&#xff0c;谈而不乱&#xff0c;抒怀而已”的写作路径&#xff0c;就要走下去&#xff0c;…

搭建个人智能家居 2 -安装ESPHome

搭建个人智能家居 2 -安装ESPHome 前言ESPHome Linux平台windows平台总结 前言 上一篇文章我们演示了多个平台下面搭建HomeAssistant&#xff0c;可能有一些小伙伴在安装、运行HomeAssistant OS后&#xff0c;打开HomeAssistant的控制台时会出现下面图片显示的问题 这一般是本…

【面试合集】2.说说微信小程序的生命周期函数有哪些?

面试官&#xff1a;说说微信小程序的生命周期函数有哪些&#xff1f; 一、是什么 跟vue、react框架一样&#xff0c;微信小程序框架也存在生命周期&#xff0c;实质也是一堆会在特定时期执行的函数 小程序中&#xff0c;生命周期主要分成了三部分&#xff1a; 应用的生命周期…

c++学习笔记-STL案例-机房预约系统2-创建身份类

前言 衔接上一篇“c学习笔记-STL案例-机房预约系统1-准备工作”&#xff0c;本文主要包括&#xff1a;创建身份类&#xff0c;建立了整个系统的框架&#xff0c;Identity基类&#xff0c;派生类&#xff1a;Sudent、Teacher、Manager&#xff0c;基类无实现源文件&#xff0c;…

用通俗易懂的方式讲解:涨知识了,这篇大模型 LangChain 框架与使用示例太棒了

一图胜千言&#xff0c;LangChain已经成为当前 LLM 应用框架的事实标准&#xff0c;本篇文章就来对 LangChain 基本概念以及其具体使用场景做一个整理。 文章目录 用通俗易懂的方式讲解系列技术交流LangChain 是什么LangChain 的主要组件Model I/OLanguage ModelPromptsOutput…

代码随想录 Leetcode19. 删除链表的倒数第 N 个结点

题目&#xff1a; 代码(首刷自解 2024年1月13日&#xff09;&#xff1a; class Solution { public:ListNode* removeNthFromEnd(ListNode* head, int n) {if(head nullptr) return nullptr;ListNode* dummyHead new ListNode(0,head);ListNode* pre dummyHead;ListNode* c…

做网页抓取时如何处理验证码

网络爬虫是自动从网站提取数据的过程&#xff0c;它已经彻底改变了企业获取信息和获取洞察的方式。然而&#xff0c;为了防止自动化机器人访问网站&#xff0c;CAPTCHA旨在阻碍网络爬虫的工作。在本文中&#xff0c;我们将探讨处理CAPTCHA的有效策略&#xff0c;并介绍Capsolve…

基于Wi-Fi的室内空气质量数据采集与分析系统(论文+源码)

1. 系统设计 当前人们对家居环境的要求越来越高&#xff0c;因此本课题设计了一款基于Wi-Fi的室内空气质量数据采集与分析系统 &#xff0c;在功能上设计如下&#xff1a; 可以实时检测当前环境的温湿度&#xff0c;CO2&#xff0c;烟雾&#xff0c;PM2.5等众多参数&#xff1…

【力扣·每日一题】2182.构造限制重复的字符串(模拟 贪心 优先队列 C++ Go)

题目链接 题意 给你一个字符串 s 和一个整数 repeatLimit &#xff0c;用 s 中的字符构造一个新字符串 repeatLimitedString &#xff0c;使任何字母 连续 出现的次数都不超过 repeatLimit 次。你不必使用 s 中的全部字符。 返回 字典序最大的 repeatLimitedString 。 如果…

JQuery过滤选择器-如何让某个元素换颜色(俩种方式)

目录 一、过滤选择器&#xff1a;eq二、过滤选择器 : lt 前言 : 在做项目时经常会遇到列表或者选择某个元素 一、过滤选择器&#xff1a;eq :eq (index)匹配一个给定索引值的元素 $("ul li:eq(0)").css("color","red");二、过滤选择器 : lt …

改进YOLOv8注意力系列四:结合中心化特征金字塔EVCBlock、大核卷积注意力LKA_Attention、全局注意力MobileViTAttention

改进YOLOv8注意力系列三:结合CrissCrossAttention、ECAAttention、EMAU期望最大化注意力 代码大核卷积注意力LKA_Attention中心化特征金字塔EVCBlock全局注意力MobileViTAttention加入方法各种yaml加入结构本文提供了改进 YOLOv8注意力系列包含不同的注意力机制以及多种加入方…

估算监控最低可以存储的时长

监控可以存储的时长&#xff0c;主要取决于码率&#xff0c;知道了码率就知道一天可以的视频产生多少视频数据。 以乐橙官网给出的计算&#xff0c;我们可以推出这个设备8MP本地的录像码率大概在4Mbps左右。 同样的我们这里附一张表格&#xff0c;大家可以根据这个来估算存储…

多级缓存架构(五)缓存同步

文章目录 一、Canal服务1. mysql添加canal用户2. mysql配置文件3. canal配置文件 二、引入依赖三、监听Canal消息四、运行五、测试 通过本文章&#xff0c;可以完成多级缓存架构中的缓存同步。 一、Canal服务 1. mysql添加canal用户 连接在上一次multiCache项目中运行的mys…