写在前面:
笔者根据狂神说的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、修改配置文件——阿里云镜像
- 镜像:加速我们的下载,使用阿里云
-
打开配置文件:Maven目录下→conf目录下→settings.xml文件
-
在标签下添加镜像:
<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
接下来建立一个属于我们自己的本地仓库
- 在maven目录下创建一个新的文件夹(可以自定义名字)maven-repo,复制该文件夹路径
-
打开配置文件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
- 因为我们在创建maven项目时,会下载许多文件,如果没有完成上面修改配置文件——配置阿里云镜像,则在下载文件时idea会走阿帕奇官网,则速度会慢许多,因此我们在IDEA中使用Maven时,要保证已经完成了上述配置文件的配置。
- 打开IDEA初始页面,点击Customize→All settings… 如图所示:
在IDEA中,如果之前有打开项目的话,IDEA默认会打开之前项目的项目环境,而不会打开初始页面,因此需要修改:
打开settings →点击Appearance & Behavior →点击System Settings →取消Reopen projects on startup
如图所示:
重启IDEA,即可进入初始页面
- 打开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中就找不到依赖,会报错
- 创建一个新的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 重新勾选
-
当项目构建完成后,可以进入本地仓库目录查看,会发现原本空的本地仓库多了许多文件
-
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
- 点击➕,选择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具有以下用途:
- Web应用程序开发和测试:Tomcat提供了一个本地服务器环境,可以在开发过程中快速部署和测试Web应用程序。它支持热部署,可以自动重新加载修改后的代码,方便开发人员进行迭代开发和调试。
- Servlet和JSP容器:Tomcat作为一个Servlet容器,可以处理和管理Java Servlet和JSP页面的请求和响应。它负责解析和执行Servlet和JSP,并将结果返回给客户端。
- 静态资源托管:Tomcat还可以用作静态资源(如HTML、CSS、JavaScript文件)的托管服务器。通过将这些文件放置在Tomcat的特定目录中,可以通过浏览器直接访问这些文件。
- 与数据库的交互:Tomcat可以与数据库服务器进行交互,通过Java数据库连接(JDBC)等技术访问和操作数据库。这使得开发人员可以在Web应用程序中实现数据持久化和数据库操作。
总而言之,Tomcat在IDEA中的作用是提供一个运行环境,用于开发、测试和运行基于Java的Web应用程序。它简化了Web开发过程,并提供了一种方便的方式来部署和调试应用程序。
问:Web应用程序与普通Java程序有什么区别
Web应用程序与普通的Java程序之间存在一些区别,主要体现在以下几个方面:
- 运行环境:Web应用程序是依托于Web服务器运行的,而普通的Java程序可以在命令行或者独立的Java虚拟机上运行。Web应用程序需要搭建和配置Web服务器(如Tomcat),然后将应用部署到服务器上才能运行。
- 用户交互:Web应用程序是通过客户端(通常是Web浏览器)与用户进行交互的,用户通过浏览器发起请求,服务器返回响应结果。而普通的Java程序通常是在命令行界面或者图形界面中与用户进行交互。
- 请求-响应模式:Web应用程序遵循请求-响应模式,客户端发送HTTP请求到服务器,服务器处理请求并返回相应的结果。普通的Java程序通常是按照事先编写好的逻辑进行执行,没有明确的请求和响应的过程。
- 多线程处理:由于Web应用程序需要处理多个并发请求,通常会使用多线程来同时处理多个请求。而普通的Java程序可能不需要考虑并发处理的问题。
- 数据持久化:Web应用程序通常需要与数据库进行交互,实现数据的持久化和访问。而普通的Java程序可以直接在内存中进行数据操作,不需要与数据库进行交互。
总之,Web应用程序与普通的Java程序在运行环境、用户交互方式、请求-响应模式等方面存在一些区别。开发Web应用程序需要了解Web开发的相关知识和技术,以及使用Web服务器来运行和部署应用程序。
问:IDEA中,配置Maven有什么作用
Maven是一个基于Java的项目管理和构建工具,可以帮助开发人员更方便地管理和构建Java项目。在IDEA中,Maven是内置的(但一般我们会下载Apache的Maven进行配置使用),并且已经预先配置好了一些常用插件和默认设置,可以在IDEA中方便地使用。
Maven可以帮助开发人员进行以下操作:
- 项目依赖管理:Maven可以帮助开发人员自动下载并管理项目所依赖的库文件、框架、插件等。通过在项目配置文件pom.xml中声明依赖项,Maven可以自动下载并引入这些依赖项。
- 构建和打包:Maven可以执行常用的构建任务,如编译、测试、打包等。开发人员可以通过在pom.xml文件中配置相应的插件和目标来定义项目构建过程。
- 版本控制:Maven可以简化版本控制,通过管理pom.xml文件来追踪项目版本、依赖项版本等信息。开发人员可以方便地升级或降级依赖库的版本。
- 发布和部署:Maven可以集成各种插件,支持将项目构建结果发布到各种环境中,如本地仓库、私有仓库、远程仓库等。同时,Maven也支持将项目部署到Web服务器上。
总之,Maven是一个强大的项目管理和构建工具,可以帮助开发人员更方便、快捷地管理Java项目。在IDEA中,通过Maven插件的支持,可以在开发过程中方便地使用Maven来进行项目管理和构建。
笔者的理解是:Web应用程序与普通的Java程序最大的区别在于web应用一定需要服务器,Tomcat就是提供服务器的,Maven是一个便捷工具,可以在开发web应用程序时从网络上下载调用各种各样的依赖项。
5.9、pom.xml文件
pom.xml文件时Maven的核心配置文件
我们来熟悉一下Maven文件里有些什么
接下来我们就要学习servlet,请关注本专栏!笔者将持续更新!