Maven学习——创建Maven的Java和Web工程,并运行在Tomcat上

devtools/2024/11/14 23:06:32/

一、Maven介绍

        Maven 是一款为 Java 项目管理构建、依赖管理的工具(软件),使用 Maven 可以自动化构建、测试、打包和发布项目,大大提高了开发效率和质量。

二、Maven安装步骤

1.下载后解压到没有空格、特殊字符和中文的目录中

2.配置环境变量

3.查看版本

4.配置conf/settings.xml文件

4.1依赖本地缓存位置(本地仓库位置)

<!-- conf/settings.xml 55行 -->
<localRepository>D:\apache-maven-3.8.1\repository</localRepository>

4.2配置国内阿里镜像

<!--在mirrors节点(标签)下添加中央仓库镜像 160行附近-->
<mirror><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf>
</mirror>

4.3配置jdk版本项目构建

<!--在profiles节点(标签)下添加jdk编译版本 268行附近-->
<profile><id>jdk11</id><activation><activeByDefault>true</activeByDefault><jdk>11</jdk></activation><properties><maven.compiler.source>11</maven.compiler.source><maven.compiler.target>11</maven.compiler.target><maven.compiler.compilerVersion>11</maven.compiler.compilerVersion><maven.compiler.encoding>utf-8</maven.compiler.encoding></properties>
</profile>

5.IDEA配置本地Maven软件

注意

  1. 如果本地仓库地址不变化,只有一个原因,就是maven/conf/settings.xml配置文件编写错误!仔细检查即可!
  2. 一定保证User settings file对应之前修改的settings.xml的路径,若 不一致,选中Override复选框,手动选择配置文件。

三、基于IDEA创建Maven工程

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工程

3.IDEA构建Maven Java Web工程

参考文章:IDEA2022版本创建maven web项目(两种方式)

3.1方式一:将普通Maven Java SE工程改为Maven Java Web工程

上面还是一个普通的Maven Java SE工程,要将其改为Maven Java Web工程,将当前工程的打包方式设置为war包:

修改项目结构:

此时,普通的Maven Java SE工程,就成功改为Maven Java Web工程了!

3.2方式二:使用插件JBLJavaToWeb创建

安装插件JBLJavaToWeb

file / settings / plugins / marketplace

创建新的java maven工程:

右键,点击JBLJavaToWeb

如果不显示webapp,刷新一下: 

3.3方式三: 使用IDEA自带的骨架

刷新maven

可能会缺少java源文件,手动创建即可

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:存放测试相关的资源文件,如测试配置文件等。

四、将Maven的Web工程部署到Tomcat中

新增一个index.html

配置Tomcat

点击debug启动,Tomcat启动成功!


http://www.ppmy.cn/devtools/133483.html

相关文章

电子电气架构 -- 智能汽车电子电气架构开发关键技术

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 所有人的看法和评价都是暂时的,只有自己的经历是伴随一生的,几乎所有的担忧和畏惧,都是来源于自己的想象,只有你真的去做了,才会发现有多快乐。…

C++入门基础知识140—【关于C++ 类构造函数 析构函数】

成长路上不孤单&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a; 【14后&#x1f60a;///C爱好者&#x1f60a;///持续分享所学&#x1f60a;///如有需要欢迎收藏转发///&#x1f60a;】 今日分享关于C 类构造函数 & 析构函数的相关内容…

使用 C# `Stopwatch` 实现函数 `Test01`的运行时间计算

1. 文档概述 本文档介绍了如何使用 C# 提供的 Stopwatch 类来实现对函数 Test01 执行时间的计时功能。Stopwatch 是 .NET Framework 中用于测量时间间隔的类&#xff0c;可以高精度地记录代码段的执行时间。此文档将指导如何集成 Stopwatch 到代码中&#xff0c;并提供实际的示…

Tokenformer:基于参数标记化的高效可扩展Transformer架构

本文是对发表于arXiv的论文 “TOKENFORMER: RETHINKING TRANSFORMER SCALING WITH TOKENIZED MODEL PARAMETERS” 的深入解读与扩展分析。主要探讨了一种革新性的Transformer架构设计方案&#xff0c;该方案通过参数标记化实现了模型的高效扩展和计算优化。 论文动机 如今的人…

好算法的特性

【课堂笔记】 ### 课堂笔记&#xff1a;好算法的特性 1. **正确性**&#xff1a; - 符合语法要求&#xff0c;能够编译和链接。 - 能够正确处理各种类型的输入&#xff0c;包括&#xff1a; - 简单的输入。 - 大规模的输入。 - 一般性的输入。 - 退…

贪心算法-汽车加油

这道题目描述了一个汽车旅行场景&#xff0c;需要设计一个有效的算法来决定在哪几个加油站停车加油&#xff0c;以便最小化加油次数。题目给出了汽车加满油后的行驶距离n公里&#xff0c;以及沿途若干个加油站的位置。我们需要找出一个方案&#xff0c;使得汽车能够完成整个旅程…

ssm基于Web的汽车客运订票系统的设计与实现+vue

系统包含&#xff1a;源码论文 所用技术&#xff1a;SpringBootVueSSMMybatisMysql 免费提供给大家参考或者学习&#xff0c;获取源码看文章最下面 需要定制看文章最下面 目 录 目 录 I 摘 要 III ABSTRACT IV 1 绪论 1 1.1 课题背景 1 1.2 研究现状 1 1.3 研究内容…

Redis 配置

语法 Redis CONFIG 命令格式如下&#xff1a; redis 127.0.0.1:6379> CONFIG GET CONFIG_SETTING_NAME实例 redis 127.0.0.1:6379> CONFIG GET loglevel1) "loglevel" 2) "notice"使用 * 号获取所有配置项&#xff1a; 实例 redis 127.0.0.1:63…