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

news2024/11/10 22:02:19

【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

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

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

相关文章

机器人技能学习-构建自己的数据集并进行训练

概要 若想训练自己的场景&#xff0c;数据集的重要性不做过多赘述&#xff0c;下面就基于 robomimic 和 robosuite 构建自己的数据集进行讲解&#xff0c;同时&#xff0c;也会附上 train 和 run 的流程&#xff0c;这样&#xff0c;就形成了闭环。 自建数据集 采集数据 采…

linux安装系统遇到的问题

这两天打算攻克下来网络编程&#xff0c;发现这也确实是很重要的一个东西&#xff0c;但我就奇了怪了&#xff0c;老师就压根没提&#xff0c;反正留在我印象的就一个tcp/ip七层网络。也说正好&#xff0c;把linux命令也熟悉熟悉&#xff0c;拿着我大一课本快速过过 连接cento…

【踩坑】flask_uploads报错cannot import name ‘secure_filename‘

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhang.cn] 背景说明 截至目前&#xff0c;用新版的flask实现文件上传(用到flask_uploads库)&#xff0c;会出现这个问题。 问题原因 版本问题&#xff0c;新的werkzeug已经把secure_filename的位置改了。 解决方法 手动修改…

数据结构与算法(十一) 排序算法一

int nArray[] { 8,5,3,2,7 };如下一个数组&#xff0c;现对其进行从小到大排序 选择排序 选择排序&#xff1a;将小的依次放在前面 具象化如下&#xff1a; void swap(int *nSValue,int *nDValue) 交换函数 { int nTempValue 0; nTempValue *nSValue; *nSVal…

RocketMQ5-03RocketMQ-Dashboard和Java客户端访问示例

接上篇02快速部署RocketMQ5.x(手动和容器部署) 已经完成 RocketMQ5.0 环境的部署&#xff0c;就需要对这个环境进行测试&#xff0c;查看集群、写入消息、读取消息等 本篇教你如何使用和查看部署的服务&#xff1a; Docker部署 Dashboard 获取镜像并下载部署服务 客户端连接 …

ZooKeeper初探:分布式世界的守护者

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 ZooKeeper初探&#xff1a;分布式世界的守护者 前言Zookeeper的概述分布式系统中的角色和作用&#xff1a; Zookeeper的数据模型Znode的概念和层次结构&#xff1a;Znode的类型和应用场景&#xff1a;…

anoconda 安装报错

表现形式&#xff1a;Output folder: D:\anoconda\Lib Extract: _nsis.py Extract: _system_path.py Output folder: D:\anoconda........................ 解决办法&#xff1a; 网址&#xff1a;Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Sour…

【LabVIEW FPGA入门】使用数字IO卡实现计数器输入功能

方法1&#xff1a; 1.首先需要用一个数字IO的输入FPGA端口&#xff0c;并将其拖入程序框图中&#xff0c;同时创建一个循环。 2.如果想要在循环中实现累加功能&#xff0c;就可以使用移位寄存器。 数字输入的当前值和历史值进行比较&#xff0c;用于一个判断大于&#xff0c;来…

【论文解读】SiamMAE:用于从视频中学习视觉对应关系的 MAE 简单扩展

来源&#xff1a;投稿 作者&#xff1a;橡皮 编辑&#xff1a;学姐 论文链接&#xff1a;https://siam-mae-video.github.io/resources/paper.pdf 项目主页&#xff1a;https://siam-mae-video.github.io/ 1.背景 时间是视觉学习背景下的一个特殊维度&#xff0c;它提供了一…

年终关账四大财务处理技巧|柯桥会计做账,财税知识

2023年即将落下帷幕&#xff0c;无数公司最忙碌就是“年终关账“这件事了。 “年终关账”不仅是企业内部结算一年经营结果的事&#xff0c;还与企业所得税汇算清缴息息相关&#xff0c;甚至还可能关乎企业税负高低与企业是否依法纳税&#xff0c;千万不可小觑。 同时&#xff0…

MySQL 管理端口

错误 客户出现 MySQL连接数 超过 最大连接数的现象 ERROR 1040 (HY000): Too many connections 出现该现象&#xff0c;一般的解决方法&#xff1a; 1.修改配置文件中的最大连接数&#xff0c;之后重启数据库 2.如果配置文件中没有设置 连接超时时间的参数。8小时后&#…

平衡小车——编码器

学习目标 了解编码器的构成理解编码器采样原理掌握编码器获取转速信息学习内容 编码器组成 左侧的减速齿轮中间的电机部分右侧的电路板减速齿轮 将电机转速通过齿轮按照一定比例进行降速。 电路板 电路板中,包含了一个圆形磁体,还有两个霍尔传感器。 电机转动时,圆形的磁…

Spring之AOP源码(一)

文章目录 一、动态代理1. 概念2. Cglib动态代理的使用3. JDK动态代理的使用 二、SpringAOP1. 简介2. Spring AOP使用 一、动态代理 1. 概念 动态代理&#xff08;Dynamic Proxy&#xff09;是一种在运行时动态生成代理对象的技术。它是一种设计模式&#xff0c;用于在不修改原…

安卓手机变iOS!

Launcher iOS 16 - 安卓手机秒变iOS Launcher iOS 16 是一款iOS启动器&#xff0c;可以将安卓手机桌面变成iOS样子&#xff0c;还有iOS的开机动画和景深效果&#xff01; 下载链接&#xff1a;【Launcher iOS 16】 ​

【CCNet】《CCNet:Criss-Cross Attention for Semantic Segmentation》

ICCV-2019 文章目录 1 Background and Motivation2 Related Work3 Advantages / Contributions4 Method5 Experiments5.1 Datasets and Metrics5.2 Experiments on Cityscapess5.3 Experiments on ADE20K5.4 Experiments on COCO 6 Conclusion&#xff08;own&#xff09; 1 Ba…

也谈人工智能——AI科普入门

文章目录 1. 科普入门人工智能的定义人工智能的类型 - 弱 AI 与强 AI人工智能、深度学习与机器学习人工智能的应用和使用场景语音识别计算机视觉客户服务建议引擎数据分析网络安全 行业应用人工智能发展史![img](https://img-blog.csdnimg.cn/img_convert/66aeaaeac6870f432fc4…

Vue的api接口封装以及使用说明、模块说明

在Api目录下面建立user.js&#xff0c;如果以后有不同的接口请求地址都可以单独创建不同的&#xff0c;目的是方便维护&#xff01; import request from /utils/request 这个代码是引入之前封装好的 request.js 文件&#xff0c;具体可以参考上门一篇文档 Vue的request.js模…

深入剖析开源大模型+Langchain框架,智能问答系统性能下降原因

大模型&#xff08;LLM&#xff09;相关理论研究与工程实践随着 GPT3 的发布&#xff0c;在学术界、工业界大爆发&#xff0c;备受各行各业关注&#xff0c;并涌现出一些赋能行业、促进生产力、生产关系变革的实践。GPT3 [1] 以及斯坦福计算机学院近 100 教授联名论文 [2] 将大…

pymssql 报错误解决办法:20002, severity 9

错误 解决办法 python3.6&#xff0c;安装pymssql低版本&#xff08;pymssql-2.1.5-cp36-cp36m-win32.whl&#xff09;

腾讯云有没有免费云服务器?如何申请?

腾讯云免费服务器申请入口 https://curl.qcloud.com/FJhqoVDP 免费服务器可选轻量应用服务器和云服务器CVM&#xff0c;轻量配置可选2核2G3M、2核8G7M和4核8G12M&#xff0c;CVM云服务器可选2核2G3M和2核4G3M配置&#xff0c;腾讯云百科txybk.com分享2024年最新腾讯云免费服务器…