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

news2024/11/17 16:50:00

写在前面:
笔者根据狂神说的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.coloradmin.cn/o/1118637.html

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

相关文章

二进制明文字符串加密:实现原理

二进制明文字符串加密:实现原理 背景 这里就不多做解释了&#xff0c;明文字符串暴露就是最好的逆向分析指引。无论是恶意攻击样本还是有一定安全需求的组件&#xff0c;直接暴露程序中的明文字符串会大幅降低外部的分析成本。所以需要在编译出的二进制中隐藏字符串。不过需要…

大数据技术学习笔记(二)—— Hadoop运行环境的搭建

目录 1 模版虚拟机准备1.1 修改主机名1.2 修改hosts文件1.3 修改IP地址1.3.1 查看网络IP和网关1.3.2 修改IP地址 1.4 关闭防火墙1.5 创建普通用户1.6 创建所需目录1.7 卸载虚拟机自带的open JDK1.8 重启虚拟机 2 克隆虚拟机3 在hadoop101上安装JDK3.1 传输安装包并解压3.2 配置…

最详细STM32,cubeMX外部中断

这篇文章将详细介绍 cubeMX外部中断的配置&#xff0c;实现过程。 文章目录 前言一、外部中断的基础知识。二、cubeMX 配置外部中断三、自动生成的代码解析四、代码实现。总结 前言 实验开发板&#xff1a;STM32F103C8T6。所需软件&#xff1a;keil5 &#xff0c; cubeMX 。实…

16 Transformer 的编码器(Encodes)——我在做更优秀的词向量

博客配套视频链接: https://space.bilibili.com/383551518?spm_id_from=333.1007.0.0 b 站直接看 配套 github 链接:https://github.com/nickchen121/Pre-training-language-model 配套博客链接:https://www.cnblogs.com/nickchen121/p/15105048.html Transformer 框架 seq…

解决osg绘制场景时因Z冲突导致重影或闪烁等不正常情况

目录 1. 问题的提出 2. Z冲突&#xff08;z-fighting&#xff09;简介 2.1. Z冲突&#xff08;z-fighting&#xff09;产生的原因 2.2. 如何消除Z冲突&#xff08;z-fighting&#xff09; 3. 代码实现 1. 问题的提出 今天绘制了一个棋盘格&#xff0c;鼠标在棋盘格上单击…

基于springboot实现学生综合测评系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现学生综合测评系统演示 摘要 随着信息化时代的到来&#xff0c;管理系统都趋向于智能化、系统化&#xff0c;学生综合测评系统也不例外&#xff0c;但目前国内仍都使用人工管理&#xff0c;学校规模越来越大&#xff0c;同时信息量也越来越庞大&#xff0c;人…

基于Android系统PJSIP库植入g729编码

基于Android系统PJSIP库植入g729编码 前言操作步骤1.从仓库下载最新的 PJSIP。3.将你的PJSIP项目中的所有文件作为给定补丁中的目录。4.按照 pjproject-2.5.diff 的说明应用更改。5.构建。 前言 有时候由于工作的需求&#xff0c;我们需要基于Android系统的PJSIP库支持G.729编…

微信小程序三种授权登录以及授权登录流程讲解

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是Java方文山&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的专栏《微信小程序开发实战》。&#x1f3af;&#x1f3a…

链表专题回顾

移除链表元素 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 新的头节点 。 /*** Definition for singly-linked list.//注意基本的链表定义方法* public class ListNode {* int val;* List…

【C++】stackqueue

适配器是一种设计模式 &#xff0c; 该种模式是将一个类的接口转换成客户希望的另外一个接口 。 虽然 stack 和 queue 中也可以存放元素&#xff0c;但在 STL 中并没有将其划分在容器的行列&#xff0c;而是将其称为 容器适配 器 &#xff0c;这是因为 stack 和队列只是对其他容…

系统架构之微服务架构

微服务架构 一.传统的单体架构与微服务架构的区别1.1 单体架构1.1.1 优点1.1.2 缺点 1.2 微服务架构1.2.1 优点1.2.2 面临的问题与挑战 二. 微服务架构模式方案2.1 聚合器微服务2.2 链式微服务2.3 数据共享微服务2.4 异步消息传递微服务 三. SOA与微服务的区别 微服务&#xff…

【数据分享】2022年我国30米分辨率的山体阴影数据(免费获取)

地形数据&#xff0c;也叫DEM数据&#xff0c;是我们在各项研究中最常使用的数据之一。之前我们分享过2022年哥白尼30米分辨率的DEM数据&#xff0c;该数据被公认为是全球最佳的开源DEM数据之一&#xff0c;甚至没有之一&#xff01;基于该数据我们处理得到2022年30米分辨率的坡…

flask入门(四)前后端数据传输

文章目录 1、flask后端接收来自前端的数据1&#xff09;如果前端提交的方法为POST2&#xff09;如果前段提交的方法是GET 2、flask后端向前端传数据3、案例参考文献 1、flask后端接收来自前端的数据 1&#xff09;如果前端提交的方法为POST 后端接收时的代码&#xff1a; xx…

移动端游戏软件开发:从创意到发布的全过程

移动游戏开发是一个充满激情和创造力的领域&#xff0c;它为数十亿的移动设备用户提供了娱乐和乐趣。本文将介绍从游戏概念到发布的整个移动端游戏软件开发过程。 1. 游戏概念和设计&#xff1a; 在任何游戏开发项目的起点&#xff0c;都是一个创新的游戏概念。这是决定游戏类…

【力扣刷题】数组实现栈、后缀表达式(逆波兰表达式)求值、中缀表达式转换为后缀表达式(无括号有括号)

&#x1f40c;个人主页&#xff1a; &#x1f40c; 叶落闲庭 &#x1f4a8;我的专栏&#xff1a;&#x1f4a8; c语言 数据结构 javaEE 操作系统 Redis 石可破也&#xff0c;而不可夺坚&#xff1b;丹可磨也&#xff0c;而不可夺赤。 刷题篇 一、数组实现栈1.1 题目描述1.2 思路…

[补题记录] Atcoder Beginner Contest 293(E)

URL&#xff1a;https://atcoder.jp/contests/abc293 目录 E Problem/题意 Thought/思路 Code/代码 E Problem/题意 给出 A、X、M&#xff0c;求 。 Thought/思路 一开始想等比数列求和&#xff0c;但是 m 不保证是质数&#xff0c;所以不能用。 假设 dp[x] 表示&…

SpringMVC(第一个项目HelloWorld))

文章目录 1.在maven引入依赖2.配置web.xml3.创建请求控制器4.创建springMVC的配置文件5.测试HelloWorld总结 1.在maven引入依赖 <dependencies><!-- SpringMVC --><dependency><groupId>org.springframework</groupId><artifactId>spring…

linux minicom 调试串口

1、使用方法 1. 打开终端 2. 输入命令&#xff1a;minicom -D /dev/ttyS0 3. 按下回车键&#xff0c;进入minicom终端界面 4. 在终端界面中发送指令或数据&#xff0c;查看设备返回的数据 5. 按下CtrlA&#xff0c;松开释放&#xff0c;再按下X&#xff0c;退出minicom2、一些…

教你如何打造一款流行的服装定制小程序

随着移动互联网时代的到来&#xff0c;线上商务发展迅猛&#xff0c;服装店也开始积极探索线上销售渠道。其中&#xff0c;小程序成为了服装店主们的首选之一。小程序以其便捷、快速的特点&#xff0c;为服装店的线上经营带来了全新的机遇。接下来&#xff0c;我们将介绍如何通…

TCP和UDP的原理及其区别(三次握手、四次挥手)

TCP和UDP都是在传输层上工作的协议&#xff0c;用于在网络中传输数据。 1、TCP和UDP之间的区别 TCP和UDP的主要区别在于它们提供的服务和特性。TCP提供可靠的、有序的、基于连接的数据传输&#xff0c;适用于对数据完整性和可靠性要求较高的应用&#xff08;邮件、短信&#xf…