JavaWeb——IDEA相关配置(Maven配置以及创建自己的第一个Maven项目)

写在前面:
笔者根据狂神说的javaweb视频,一步一步跟着配置IDEA中的Maven,在后面,笔者将讲述自己如何从0配置Maven以及创建自己的第一个Maven项目,笔者将自己的心路历程,包括配置的过程,都以文字加图片的形式体现出来,即使小白也能跟着一步一步做!
最最重要的是,**笔者将自己走过的坑包括如何解决这些坑的方式都写下来了!**有些地方笔者只写出了解决方法,并没有写出原理,如果有大佬了解,请在评论区为笔者解惑,万分感谢!

5、Maven

在JavaWeb开发中,需要使用大量jar包,我们需要手动导入;

Maven能够自动帮我们导入和配置jar包

5.1、Maven项目架构管理工具

我们目前用它来就是方便导入jar包的

Maven的核心思想约定大于配置

Maven会规定好你该如何去编写Java代码,必须按照这个规范来

5.2、下载安装Maven

maven的下载与安装教程(超详细)_格子衫111的博客-CSDN博客

该博客有百度网盘链接下载

解压完成后:

5.3、配置环境变量

在我们的系统环境变量中

配置如下配置:

  • M2_HOME maven目录下的bin目录
  • MAVEN_HOME maven的目录
  • 在path中配置MAVEN_HOME

在这里插入图片描述
在这里插入图片描述

配置完成后,可以用在命令行窗口输入

mvn -version

查看是否配置完成

在这里插入图片描述

5.4、修改配置文件——阿里云镜像

  • 镜像:加速我们的下载,使用阿里云
  1. 打开配置文件:Maven目录下→conf目录下→settings.xml文件

  2. 在标签下添加镜像:

      <mirrors><mirror><id>aliyunmaven</id><mirrorOf>central</mirrorOf><name>aliyun maven</name><url>https://maven.aliyun.com/repository/public </url></mirror></mirrors>
    

    如图所示:

在这里插入图片描述

为何要配置镜像? ✅享受加速下载

5.5、本地仓库

建立一个本地仓库

如果不配置自己的本地仓库,maven会默认建立一个本地仓库

在配置文件中有如下注释:

  <!-- localRepository| The path to the local repository maven will use to store artifacts.|| Default: ${user.home}/.m2/repository<localRepository>/path/to/local/repo</localRepository>-->

说明,默认本地仓库地址为:C盘→用户目录(笔者的叫users)→home→.m2(该文件是一个隐藏文件,如果没看到该文件,打开显示隐藏文件)→repository

接下来建立一个属于我们自己的本地仓库

  1. 在maven目录下创建一个新的文件夹(可以自定义名字)maven-repo,复制该文件夹路径

在这里插入图片描述

  1. 打开配置文件settings.xml,加入:

    <localRepository>D:\Environment\apache-maven-3.6.3\maven-repo</localRepository>
    <!--localRepository表示本地仓库,D:\Environment\apache-maven-3.6.3\maven-repo表示文件夹地址-->
    

5.6、在IDEA中使用Maven

  1. 因为我们在创建maven项目时,会下载许多文件,如果没有完成上面修改配置文件——配置阿里云镜像,则在下载文件时idea会走阿帕奇官网,则速度会慢许多,因此我们在IDEA中使用Maven时,要保证已经完成了上述配置文件的配置。
  2. 打开IDEA初始页面,点击Customize→All settings… 如图所示:

在这里插入图片描述

在IDEA中,如果之前有打开项目的话,IDEA默认会打开之前项目的项目环境,而不会打开初始页面,因此需要修改:

打开settings →点击Appearance & Behavior →点击System Settings →取消Reopen projects on startup

如图所示:

在这里插入图片描述

重启IDEA,即可进入初始页面

  1. 打开All settings后 →点击Bulid, Execution, Deployment →点击Build Tools →点击Maven , 如图所示:

在这里插入图片描述

完成框内的修改即可

更新更新更新!!!!!注意看这里!!!否则pom.xml会找不到依赖!!!这个坑也是笔者亲身经历!!!!

不要取消勾选Use settings from .mvn/maven.config。当初在配置maven环境的时候搞得头秃,因此不管三七二十一都模仿网上教程,别人取消勾选笔者也取消勾选

maven是帮助程序员在搭建web应用时快速安装环境,库,框架等依赖的工具,这个勾选选项的意思时,使用你自己的maven中的配置(configuration,简写conf),来设置该项目的设置(settings,名词,设置),勾选它,则可以在你自己的maven中找到依赖(dependency),否则,pom.xml中就找不到依赖,会报错

在这里插入图片描述

  1. 创建一个新的Maven项目,点击New Project→Maven Archetype

在这里插入图片描述

模板可以不选择,如果想要不选择模板,则如图所示:

在这里插入图片描述

完成以上步骤后,即可创建新的maven项目,第一次创建maven项目时,IDEA会自动下载一些必要的文件,需要等待项目下载完成,因此,如果不配置镜像网站的话,从外网下载会十分缓慢,所以大家一定要按照步骤,一步步配置。

ps:下面说一下笔者踩过的坑!

一开始笔者根据网上的教程(狂神说的IDEA与新版IDEA的UI界面不同,因此修改IDEA的Maven路径我是找其他教程的)配置自己的Maven路径,笔者并没有进入初始化页面配置,只是单纯地从某一个项目的页面,进入settings开始配置。

在这里插入图片描述

原以为配置完成了,等笔者开始创建Maven项目时,发现Maven依旧从官网下载文件,速度特别慢。

笔者重新进入settings查看,发现原本修改完的maven路径又变回默认的了,心态炸裂QAQ。

后来笔者思索了一下,应该是:在项目中的settings是修改本项目的设置,当创建新的项目时,又回到了初始的设置,在初始页面的All settings修改Maven路径,就相当于修改了初始设置,即创建新项目时,新项目的初始设置就是我们自己的Maven路径,这样我们的镜像源和本地仓库才能使用。

当然,如果不想每次都进入初始页面的话,可以进入settings将 Reopen projects on startup 重新勾选

  1. 当项目构建完成后,可以进入本地仓库目录查看,会发现原本空的本地仓库多了许多文件

  2. IDEA中的Maven设置

    如果你的项目模板时webapp,你会发现,项目中没有java文件夹也没有test文件夹,因此,我们需要创建java文件夹,用于存放java文件,test文件夹可创建也可以不创建

    在创建java文件夹后,你会发现,java文件夹是灰色的,且无法new一个java文件出来,这是因为,我们并没有标记文件夹的功能。

    右键文件夹→Mark Directory as 可以标记文件夹的功能

    如果右键后并没有Mark Directory as,则可以进入File→Project Structure →Project Settings →Modules →+→Improt Module→选择你的项目→Import module from external model → Maven →Create

    是不是很复杂,请看图

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    完成了!

5.7、在IDEA中配置Tomcat

笔者在此处也是踩了很多的坑 ,笔者使用的IDEA是社区版,因此许多功能和设置与专业版的不同,在网上找到的资料也是要仔细甄别,因此,在这里说明,笔者使用的IDEA 2023.3 community版本,如果版本与笔者相同,遇到的问题应该也是相似的,可以参考本文。

注意:笔者在配置时退出了IDEA的新版UI,回到老版UI,布局上会有所不同,如果读者的UI界面是新版,请退出,然后再跟着笔者操作

1.点击IDEA右边的小框框→edit configurations

在这里插入图片描述

  1. 点击➕,选择Tomcat,重点来了,请注意,也许会遇到不一样的情况

在这里插入图片描述

  • 如果找到Tomcat service,恭喜你,直接添加即可

  • 如果没有找到Tomcat有关的选项,请按照下列步骤执行

    • File→Settings→Plugins→Marketplace(插件商城)→在搜索框内搜索Tomcat

    在这里插入图片描述

    • 安装Smart Tomcat (细心的小伙伴已经看到了一个灰色的install,这个插件是Tomcat and TomEE,一些教程会叫你安装他,但是现在他是高贵的专业版用户才能下载的插件,我等平民百姓安装不了
    • 安装完成后,重启IDEA →File→Settings。你会发现多了Tomcat Server
    • Tomcat Server→➕→选择你下载的Tomcat文件夹→OK

    在这里插入图片描述

  • 回到第一步

在这里插入图片描述

  • 创建一个Tomcat的configuration

在这里插入图片描述

  • 最终设置变成这样

在这里插入图片描述

即完成Tomcat配置

之前在配置Maven时,我们用webapp模板创建了一个maven项目,现在我们来运行一下里面的index.jsp文件(在main目录下webapp文件夹中)

在这里插入图片描述

得到一个localhost+8080端口+项目名的域名,点击即可进入

当然,在jsp中只写了一个Hello world!

在这里插入图片描述

5.8、Tomcat、Maven、普通java程序的区别

唯有理解好Tomcat,Maven,以及普通的java程序,摸清楚它们的概念和区别,我们在配置中遇到的问题,才能找到针对性地解决办法,即使自己找不到解决办法,上百度也有一个很好的搜索方向,不然就一头雾水,出了问题也不知道怎么描述

问:IDEA中,Tomcat有什么作用

2023/10/18 14:16:09

在IDEA中,Tomcat是一个非常常用的Java Web服务器,用于开发和测试基于Java的Web应用程序。它提供了一个运行环境,可以将Java Servlet、JavaServer Pages(JSP)和其他相关技术部署为Web应用程序

Tomcat具有以下用途:

  1. Web应用程序开发和测试:Tomcat提供了一个本地服务器环境,可以在开发过程中快速部署和测试Web应用程序。它支持热部署,可以自动重新加载修改后的代码,方便开发人员进行迭代开发和调试。
  2. Servlet和JSP容器:Tomcat作为一个Servlet容器,可以处理和管理Java Servlet和JSP页面的请求和响应。它负责解析和执行Servlet和JSP,并将结果返回给客户端。
  3. 静态资源托管:Tomcat还可以用作静态资源(如HTML、CSS、JavaScript文件)的托管服务器。通过将这些文件放置在Tomcat的特定目录中,可以通过浏览器直接访问这些文件。
  4. 与数据库的交互:Tomcat可以与数据库服务器进行交互,通过Java数据库连接(JDBC)等技术访问和操作数据库。这使得开发人员可以在Web应用程序中实现数据持久化和数据库操作。

总而言之,Tomcat在IDEA中的作用是提供一个运行环境,用于开发、测试和运行基于Java的Web应用程序。它简化了Web开发过程,并提供了一种方便的方式来部署和调试应用程序。

问:Web应用程序与普通Java程序有什么区别

Web应用程序与普通的Java程序之间存在一些区别,主要体现在以下几个方面:

  1. 运行环境:Web应用程序是依托于Web服务器运行的,而普通的Java程序可以在命令行或者独立的Java虚拟机上运行。Web应用程序需要搭建和配置Web服务器(如Tomcat),然后将应用部署到服务器上才能运行。
  2. 用户交互:Web应用程序是通过客户端(通常是Web浏览器)与用户进行交互的,用户通过浏览器发起请求,服务器返回响应结果。而普通的Java程序通常是在命令行界面或者图形界面中与用户进行交互。
  3. 请求-响应模式:Web应用程序遵循请求-响应模式,客户端发送HTTP请求到服务器,服务器处理请求并返回相应的结果。普通的Java程序通常是按照事先编写好的逻辑进行执行,没有明确的请求和响应的过程。
  4. 多线程处理:由于Web应用程序需要处理多个并发请求,通常会使用多线程来同时处理多个请求。而普通的Java程序可能不需要考虑并发处理的问题。
  5. 数据持久化:Web应用程序通常需要与数据库进行交互,实现数据的持久化和访问。而普通的Java程序可以直接在内存中进行数据操作,不需要与数据库进行交互。

总之,Web应用程序与普通的Java程序在运行环境、用户交互方式、请求-响应模式等方面存在一些区别。开发Web应用程序需要了解Web开发的相关知识和技术,以及使用Web服务器来运行和部署应用程序。

问:IDEA中,配置Maven有什么作用

Maven是一个基于Java的项目管理和构建工具,可以帮助开发人员更方便地管理和构建Java项目。在IDEA中,Maven是内置的(但一般我们会下载Apache的Maven进行配置使用),并且已经预先配置好了一些常用插件和默认设置,可以在IDEA中方便地使用。

Maven可以帮助开发人员进行以下操作:

  1. 项目依赖管理:Maven可以帮助开发人员自动下载并管理项目所依赖的库文件、框架、插件等。通过在项目配置文件pom.xml中声明依赖项,Maven可以自动下载并引入这些依赖项。
  2. 构建和打包:Maven可以执行常用的构建任务,如编译、测试、打包等。开发人员可以通过在pom.xml文件中配置相应的插件和目标来定义项目构建过程。
  3. 版本控制:Maven可以简化版本控制,通过管理pom.xml文件来追踪项目版本、依赖项版本等信息。开发人员可以方便地升级或降级依赖库的版本。
  4. 发布和部署:Maven可以集成各种插件,支持将项目构建结果发布到各种环境中,如本地仓库、私有仓库、远程仓库等。同时,Maven也支持将项目部署到Web服务器上。

总之,Maven是一个强大的项目管理和构建工具,可以帮助开发人员更方便、快捷地管理Java项目。在IDEA中,通过Maven插件的支持,可以在开发过程中方便地使用Maven来进行项目管理和构建。

笔者的理解是:Web应用程序与普通的Java程序最大的区别在于web应用一定需要服务器,Tomcat就是提供服务器的,Maven是一个便捷工具,可以在开发web应用程序时从网络上下载调用各种各样的依赖项。

5.9、pom.xml文件

pom.xml文件时Maven的核心配置文件

我们来熟悉一下Maven文件里有些什么

在这里插入图片描述

接下来我们就要学习servlet,请关注本专栏!笔者将持续更新!

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

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

相关文章

Android切换主题生命周期流程与onSaveInstanceState和onRestoreInstanceState,Kotlin

Android切换主题生命周期流程与onSaveInstanceState和onRestoreInstanceState&#xff0c;Kotlin import android.os.Bundle import android.util.Log import androidx.appcompat.app.AppCompatActivityclass MainActivity : AppCompatActivity() {private val TAG "fly&…

栈和队列的C++模拟实现

一、栈stack 1.介绍&#xff08;库里面的文档介绍&#xff09; 1. stack是一种容器适配器&#xff0c;专门用在具有后进先出操作的上下文环境中&#xff0c;其删除只能从容器的一端进行元素的插入与提取操作。 2. stack是作为容器适配器被实现的&#xff0c;容器适配器即是对…

PositiveSSL的泛域名SSL证书

PositiveSSL是Sectigo旗下的一个子品牌&#xff0c;致力于为全球用户提供优质、高效的SSL证书服务。PositiveSSL以Sectigo强大的品牌影响力和全球网络为基础&#xff0c;秉承“安全、可靠、高效”的服务理念&#xff0c;为各类网站提供全面的SSL证书解决方案。今天就随SSL盾小编…

统信uos 1030 企业版 安装.net core环境

安装.net core步骤 添加密钥和包存储库 安装 .NET 之前&#xff0c;请运行以下命令&#xff0c;将 Microsoft 包签名密钥添加到受信任密钥列表&#xff0c;并添加包存储库wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb -O packages-mic…

Mac 远程桌面软件

对于使用 Mac 计算机和笔记本电脑的企业来说&#xff0c;适用于 Mac 的远程桌面软件变得越来越重要&#xff0c;随着远程工作变得越来越普遍&#xff0c;IT 管理员和组织需要一种安全的方式来访问和修复问题、处理紧急任务以及监控远程工作站的状态&#xff0c;为了促进远距离协…

Java:ApacheHttpClient连接寿命(timeToLive)未配置问题分析

一、问题描述 若 Apache HttpClient 未设置 timeToLive&#xff0c;通过服务域名访问服务的实例并且服务域名解析出的 IP 发生变化时&#xff0c;在短时间内会有部分请求出现连接异常错误。 二、问题分析 Apache HttpClient 通过服务域名从连接池获取连接&#xff0c;当连接…

面试官:说说 HTTP 常见的请求头有哪些?

一、是什么 HTTP头字段&#xff08;HTTP header fields&#xff09;,是指在超文本传输协议&#xff08;HTTP&#xff09;的请求和响应消息中的消息头部分 它们定义了一个超文本传输协议事务中的操作参数 HTTP头部字段可以自己根据需要定义&#xff0c;因此可能在 Web 服务器…

项目知识点总结-过滤器-MD5注册-邮箱登录

&#xff08;1&#xff09;过滤器 使用过滤器验证用户是否登录 /** * Title: NoLoginFilter.java * Package com.qfedu.web.filter * Description: TODO(用一句话描述该文件做什么) * author Feri * date 2018年5月28日 * version V1.0 */ package com.gdsdx…

Linux---(三)基本指令大全

前提引入&#xff1a;历史上先出现的键盘还是鼠标&#xff1f; 答案&#xff1a;键盘 ✨所以刚开始的时候绝对没有图形化界面&#xff0c;因此操作系统刚开始兴起的时候绝对没有图形化界面&#xff0c;因为当时没有鼠标。 ✨因为没有图形化界面&#xff0c;只有键盘&#xff0c…

实时消息传送:WebSocket实现系统后台消息实时通知

实时消息传送&#xff1a;WebSocket实现系统后台消息实时通知 WebSocket简介基本实现步骤后台服务器后端接口SimpMessagingTemplate MessageDto前端客户端 示例应用 在现代Web应用中&#xff0c;提供实时通知对于改善用户体验至关重要。WebSocket技术允许建立双向通信通道&…

nginx常见报错及解决acme.sh给Nginx配置SSL证书

问题排查&#xff1a; nginx -t //检查配置是否正确只要返回ok就说明配置没问题。 Nginx报错Failed to restart nginx.service: Unit not found 解决方法&#xff1a; 1、在根目录下执行 vim /etc/init.d/nginx2、插入以下代码 #!/bin/sh # nginx - this script starts …

打造自己的前端组件库(奶妈版,超详细)

打造自己的前端组件库 demo是开源的&#xff0c;自己上npm 或者 github 上都能搜到 新建vue项目(sass js vue2) vue create yt-ui 修改文件目录(如下) 修改&#xff1a; 1.src 更名 examples; 2. src/components移动到项目最外层&#xff1b;3.vue.config.js更改入口文件 /…

FPGA ZYNQ VIVADO创建IP核点亮LED灯 方式一

这里写自定义目录标题 PL端 纯Verilog语言创建IP核实现点亮LED灯工使用设备 ZYNQ 7010&#xff0c;选择设备型号XC7Z010CLG400-1根据以下流程完成本次创建时钟频率50MHZ&#xff0c;周期T20ns&#xff0c;因此计数50_000_000次&#xff0c;1sLED灯闪烁一次 PL端 纯Verilog语言创…

Hadoop3教程(二十五):Yarn的多队列调度器使用案例

文章目录 &#xff08;136&#xff09;生产环境多队列创建&好处&#xff08;137&#xff09;容量调度器多队列提交案例如何创建多个队列如何向指定队列提交任务 &#xff08;138&#xff09;容量调度器任务优先级&#xff08;139&#xff09;公平调度器案例参考文献 &#…

二维码智慧门牌管理系统升级解决方案:地图展示

文章目录 前言一、地图展示功能二、其他升级和改进 前言 随着城市的发展和信息化建设的推进&#xff0c;二维码智慧门牌管理系统在社区管理、物流配送、巡检巡查等多个领域发挥着越来越重要的作用。为了更好地满足用户需求&#xff0c;提升管理效率和服务质量&#xff0c;我们…

Deep Learning for Geophysics综述阅读(未完)

文章题目《Deep Learning for Geophysics: Current and Future Trends》 文章解读&#xff1a;地球物理学&#xff08;人工智能轨道&#xff09;——&#xff08;1&#xff09;文献翻译《面向地球物理学的深度学习&#xff1a;当前与未来趋势》 - 知乎 (zhihu.com) 这里主要列…

Hive安装配置 - 内嵌模式

文章目录 一、Hive运行模式二、安装配置内嵌模式Hive&#xff08;一&#xff09;下载hive安装包&#xff08;二&#xff09;上传hive安装包&#xff08;三&#xff09;解压缩hive安装包&#xff08;四&#xff09;配置hive环境变量&#xff08;五&#xff09;关联Hadoop&#x…

基于Java的人事管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09; 代码参考数据库参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&am…

使用 类加载器 或者 类对象 读取文件

相对路径&#xff1a;项目 的 根目录 开始查找。&#xff08; 但是在我们真正开发的时候&#xff0c;我们读到的更多的文件并不是直接放在我们项目里面这个文件夹里面&#xff0c;而是放在我们模块里面 &#xff09;同理可得&#xff0c;我们直接创建 文件 b.txt 会在项目的根目…

ESP32C3 LuatOS TM1650①驱动测试

合宙TM1650驱动资料 TM1650.lua源码 引脚连接 TM1650ESP32C3SCLGPIO5SDAGPIO4 下载TM1650.lua源码&#xff0c;并以文件形式保存在项目文件夹中 驱动测试源码 --注意:因使用了sys.wait()所有api需要在协程中使用 -- 用法实例 PROJECT "ESP32C3_TM1650" VERSION …