基于IDEA创建Maven工程及注意事项

Java全能学习+面试指南:https://javaxiaobear.cn

1. 概念梳理Maven工程的GAVP

Maven工程相对之前的项目,多出一组gavp属性,gav需要我们在创建项目的时候指定,p有默认值,我们先行了解下这组属性的含义:

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

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版本号格式推荐:主版本号.次版本号.修订号

​ 1) 主版本号:当做了不兼容的 API 修改,或者增加了能改变产品方向的新功能。

​ 2) 次版本号:当做了向下兼容的功能性新增(新增类、接口等)。

​ 3) 修订号:修复 bug,没有修改方法签名的功能加强,保持 API 兼容性。

​ 例如: 初始→1.0.0 修改bug → 1.0.1 功能调整 → 1.1.1等

Packaging定义规则:

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

​ packaging 属性为 jar(默认值),代表普通的Java工程,打包以后是.jar结尾的文件。

​ packaging 属性为 war,代表Java的web工程,打包以后.war结尾的文件。

​ packaging 属性为 pom,代表不会打包,用来做继承的父工程。

2. Idea构建Maven Java SE工程

注意:此处省略了version,直接给了一个默认值:1.0-SNAPSHOT

自己后期可以在项目中随意修改!

image-20231021143559114

创建工程之后,若第一次使用maven,或者使用的是新的本地仓库,idea右下角会出现以下进度条,表示maven正在下载相关插件,等待下载完毕,进度条消失即可

image-20231021145024505

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

image-20231021145713433

3. Idea构建Maven Java Web工程

  1. 手动创建

    1. 创建一个maven的javase工程

      image-20231021150134082

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

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

      <groupId>com.atguigu</groupId>
      <artifactId>maven_web</artifactId>
      <version>1.0-SNAPSHOT</version>
      <!-- 新增一列打包方式packaging -->
      <packaging>war</packaging>
      
    3. 设置web资源路径web.xml路径

      点击File–>Project Structure

      image-20231021151040531

      image-20231021151627161

      image-20231021151753318

    4. 刷新和校验

      image-20231021152310802

      image-20231021151921943

  2. 插件创建

    1. 安装插件JBLJavaToWeb

      file / settings / plugins / marketplace

    2. 创建一个javasemaven工程

    3. 右键、使用插件快速补全web项目

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                     # 测试资源目录
  • pom.xml:Maven 项目管理文件,用于描述项目的依赖和构建配置等信息。
  • src/main/java:存放项目的 Java 源代码。
  • src/main/resources:存放项目的资源文件,如配置文件、静态资源等。
  • src/main/webapp/WEB-INF:存放 Web 应用的配置文件。
  • src/main/webapp/index.jsp:Web 应用的入口页面。
  • src/test/java:存放项目的测试代码。
  • src/test/resources:存放测试相关的资源文件,如测试配置文件等。

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

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

相关文章

Mac电脑VSCode配置PHP开发环境

1.安装 PHP 首先&#xff0c;打开终端&#xff0c;安装 Homebrew&#xff0c;输入如下命令&#xff1a; $ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 安装了 Homebrew 之后&#xff0c;你可以使用下面的…

Apache Airflow (八) :DAG任务依赖设置

&#x1f3e1; 个人主页&#xff1a;IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 &#x1f6a9; 私聊博主&#xff1a;加入大数据技术讨论群聊&#xff0c;获取更多大数据资料。 &#x1f514; 博主个人B栈地址&#xff1a;豹哥教你大数据的个人空间-豹…

User parameters自定义用户参数 (zabbix监控)

1、介绍和用法 ① 介绍 自定义用户参数&#xff0c;也就是自定义key 有时&#xff0c;你可能想要运行一个代理检查&#xff0c;而不是Zabbix的预定义 你可以编写一个命令来检索需要的数据&#xff0c;并将其包含在代理配置文件("UserParameter"配置参数)的用户参数中…

LabVIEW关于USRPRIO的示例代码

LabVIEW关于USRPRIO的示例代码 USRPRIO 通常以两种方式使用&#xff1a; 1 基于 FPGA 的编程 对于希望修改USRP上的底层FPGA代码以添加自定义DSP模块的应用&#xff0c;请使用USRP示例项目。它可作为构建 USRP RIO 流式处理应用程序的起点&#xff0c;可从“创建项目”对话框…

服务注册发现 springcloud netflix eureka

文章目录 前言角色&#xff08;三个&#xff09; 工程说明基础运行环境工程目录说明启动顺序&#xff08;建议&#xff09;&#xff1a;运行效果注册与发现中心服务消费者&#xff1a; 代码说明服务注册中心&#xff08;Register Service&#xff09;服务提供者&#xff08;Pro…

基于JavaWeb+SSM+社区居家养老服务平台—颐养者端微信小程序系统的设计和实现

基于JavaWebSSM社区居家养老服务平台—颐养者端微信小程序系统的设计和实现 源码获取入口前言主要技术系统设计功能截图Lun文目录订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码获取入口 前言 在复杂社会化网络中&#xff0c;灵活运用社会生活产生的大数据&am…

Shopee买家号有什么作用?如何才能拥有大量的虾皮买家号?

对于卖家而言&#xff0c;用shopee买家号进行测评有以下几点好处&#xff1a; 1、随时随地可以给自己店铺下单、评价、点星 2、成本很低&#xff1a;都是自己准备一些资料进行注册的&#xff0c;因此成本也是比较可控的。 3、自己管理更加安全可控&#xff1a;每个账号都是独…

03-关系和非关系型数据库对比

关系和非关系型数据库对比 关系型数据库(RDBMS)&#xff1a;MySQL、Oracl、DB2、SQLServer 非关系型数据库(NoSql)&#xff1a;Redis、Mongo DB、MemCached 插入数据结构的区别 传统关系型数据库是结构化数据,向表中插入数据时都需要严格的约束信息(如字段名,字段数据类型,字…

C#WPF中的实现读取和写入文件的几种方式

说明&#xff1a;C#中实现读取和写入的类根据需要来选择。 1、File类 File类是用于操作文件的工具类&#xff0c;提供了对文件进行创建、复制、删除、移动和打开单一文件的静态方法。但需要注意的是&#xff0c;WPF中使用File的类&#xff0c;需要先引用System.IO下的命名空间。…

从零开始:打造疫苗预约抖音小程序的技术指南

这篇文章小编将与大家一同探讨如何开发一款疫苗预约的抖音小程序。 第一步&#xff1a;项目准备和规划 确定用户需要提供的信息&#xff0c;例如个人信息、接种地点偏好等。同时&#xff0c;考虑系统的用户界面设计&#xff0c;确保用户友好性和易用性。 第二步&#xff1a;…

验证k8s中HPA功能及测试

部署 使用yaml部署服务 apiVersion: apps/v1 kind: Deployment metadata:name: php-apachenamespace: tools spec:replicas: 1selector:matchLabels:app: php-apachetemplate:metadata:labels:app: php-apachespec:containers:- name: php-apacheimage: registry.cn-beijing.…

基于SpringBoot+Vue的新能源汽车充电桩管理系统

基于SpringBootVue的新能源汽车充电桩管理系统的设计与实现~ 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBootMyBatisVue工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 主页 充电桩详情 管理员界面 摘要 本项目是基于Spring Boot 和 …

百数低代码——为教育行业打开数字化转型之路

教育一直是人类社会发展与进步的基石&#xff0c;也是国之大计。教育既需要满足“千人千面”的获取知识需求&#xff0c;又需要保证教育本身的质量&#xff0c;因此教育培训方式一直在改变。 而如今&#xff0c;大数据、人工智能等新一代信息技术推动着传统教育向数字化教育发展…

event事件分发器||静态类型转换

由于类型不一样在event事件分发器中要进行静态类型转换&#xff0c;将基类转换为派生类进行处理 对event事件分发器拦截后最后要将其他函数交给父类处理&#xff0c;否则不会运行

Docker与VM虚拟机的区别以及Docker的特点

01、本质上的区别 VM(VMware)在宿主机器、宿主机器操作系统的基础上创建虚拟层、虚拟化的操作系统、虚拟化的仓库&#xff0c;然后再安装应用&#xff1b; Container(Docker容器)&#xff0c;在宿主机器、宿主机器操作系统上创建Docker引擎&#xff0c;在引擎的基础上再安装应…

Java GUI实现贪吃蛇游戏

贪吃蛇是一款经典的游戏&#xff0c;玩法相对简单但富有挑战性。以下是贪吃蛇游戏的基本玩法说明&#xff1a; 目标&#xff1a;控制一条蛇&#xff0c;在游戏区域内吃到尽可能多的食物&#xff0c;使蛇身变长&#xff0c;同时避免撞到自己的身体或游戏区域的边界。 控制&…

Apache ActiveMQ RCE

影响版本 Apache ActiveMQ < 5.18.3 利用条件 需要访问到61616端口(默认)。 漏洞分析 这里需要的是Apache ActiveMQ < 5.18.3,我这里直接下的5.18.2 https://github.com/apache/activemq/commit/958330df26cf3d5cdb63905dc2c6882e98781d8f 在新版本中添加了一个Ope…

YOLO目标检测——钢表面缺陷检测数据集下载分享【含对应voc、coco和yolo三种格式标签】

实际项目应用&#xff1a;钢材质量控制、钢材缺陷检测数据集说明&#xff1a;钢表面缺陷检测数据集&#xff0c;真实场景的高质量图片数据&#xff0c;数据场景丰富标签说明&#xff1a;使用lableimg标注软件标注&#xff0c;标注框质量高&#xff0c;含voc(xml)、coco(json)和…

AdServices归因和iAd归因集成

AdServices framework 是 Apple 专门为 ASA 提供的归因框架 。尤其在ATT 政策推出以后&#xff0c;app 获取用户 IDFA 的比例大幅降低&#xff0c;传统的依靠IDFA 的方法也无法准确归因。 但是 Apple 为 ASA 开了一个后门&#xff0c;其他广告渠道无法获取用户的 IDFA 作为身份…

【读点论文】FMViT: A multiple-frequency mixing Vision Transformer-期待源码

FMViT: A multiple-frequency mixing Vision Transformer Abstract transformer模型近年来在计算机视觉任务中得到了广泛的应用。然而&#xff0c;由于自关注的时间和内存复杂度是二次的&#xff0c;并且与输入token的数量成正比&#xff0c;大多数现有的(Vision transformer,…