| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> Maven入门宝典(二)Maven工程开发 -> 正文阅读 |
|
[Java知识库]Maven入门宝典(二)Maven工程开发 |
目录 四.解决Unable to import maven project报错 一.Idea配置Maven插件
在使用
Idea
开发项目时,可以整合
Maven
插件进行一键构建和依赖管理。
Idea
自带
Maven
插件,我们也可以指定自己下载的
Maven
插
件。
依据图片指示,选择本地
maven
安装目录,指定
settings
配置文件。
File-->Settings--> 注意本地仓库位置如果没自动检测则需要自己配置。配置时别忘了点击override。
之后,点击
File — New Projects Settings(因idea的版本不同,也可能是Other Settings) — Settings for NewProjects
,再像上面一样设置一遍
Maven
,使得新创建的项目也可以使用同样的
Maven
配置。
二.构建Maven工程
接下来我们构建一个
Maven
的
Web
工程:
1
打开
idea
,选择创建一个新工程
配置GroupId和ArtifactId ?点击next,出现下面的页面,一般不用改,点击next, ?然后配置项目名(一般不用改,和ArtifactId一样)和项目存放路径 ?点击Finish。 然后我的idea就报了一个错误,说是不能导入maven项目,应该是选中的那个模板
?问题解决: 看了这两篇文章: IDEA Unable to import maven project: See logs for details (maven的坑)_Certain_的博客-CSDN博客_see IDEA Maven 报 Unable to import maven project解决方案_仰望晴空的网痴的博客-CSDN博客 但是我照着修改之后却仍然Unable to import maven project: 又胡乱捣鼓了大半天,我把我上篇文章给maven配置jdk8时的代码修改了下,原来如下:
修改后:
然后又在<mirror>标签的<url>中的路径最后加了个/,已在上篇文章中修改,原来没有/ 之后再启动就好了 ! 另一个问题: 大概意思是连接不上谷歌服务器。 成功启动: 一小会功夫下载一些 看看项目结构:
手动添加
src/main/java
目录,此时该目录还不能写
Java
代码。
6
将
src/main/java
目录设置为
Java
代码目录。右键java文件夹:
设置之后会发现java文件夹下可以创建java文件
同理在main下创建resources文件夹(用于存放配置文件),右键--》Mark Drractory as -->Resources Root
再在src下创建test文件夹,然后在test下创建java和resources文件夹,用上面相同的方法分别设置为Test Sources Root 和 Test Resources Root 即可。
配置完成的项目结构如下:
三.pom文件配置pom.xml文件配置了maven项目的所有信息。
pom
文件最上方是项目基本信息:
groupId
groupId
一般定义项目组名,命名规则使用反向域名。例如com.itbaizhan
artifactId
artifactId
一般定义项目名,命名使用小写字母。项目发布后,它的坐标是
groupId+artifactId
。
version
version
定义版本号。版本号一般有三段,第一段:革命性的产品升级。第二段:新功能版本。第三段:修正一些
bug
。
packaging
packaging
定义打包方式。
<properties>
中定义一些配置信息:
<dependencies>
中定义依赖的
jar
包坐标:
由于项目是
web
项目,需要写
Servlet
和
JSP
,所以需要引入
Servlet和
JSP
的依赖。查找依赖坐标的网站:
https://mvnrepository.com/
在这里当要引入依赖时发现仍出现Unable to import maven project的问题,哎,麻了。 先说如何引入,登陆上面的网址,在搜索框搜索想要的api,比如我要引入servlet,输入servlet ?选择版本 ?我这里选择3.0.1 ?要把其中的<scope>provided</scope>去掉,后面再讲 同样的方法添加jsp,搜索jsp即可,我选择2.2版本,复制代码时也把<scope>provided</scope>去掉 最后<dependencies> 如下:
为什么之前的
web
项目中没有引入
jsp
和
servlet
的
jar
包?
因为之前项目中使用的是
tomcat
中的
jsp
和
servlet
中的
jar
包,在项目中没有引入。
<plugins>
中定义第三方插件:
web
项目依赖
tomcat
运行,所以添加
tomcat7
插件,在<plugins>中添加如下插件代码
四.解决Unable to import maven project报错在经过上面的修改无果后,我准备重装Idea,idea2019和maven版本可能不兼容了,所以我又参考了下面的文章,下载了比较新的idea2022.1 IntelliJ IDEA 2022.1最新激活破解教程(永久激活,亲测有效) - 异常教程 最新IDEA专业版安装教程(2021.3.2)_C.DLording的博客-CSDN博客_idea专业版安装教程 注意host文件位置:C:\Windows\System32\drivers\etc 我看了看,好像我的host文件之前并没有为idea配置过,所以开始放心破解过程。 亲测有效! 五.编写代码
接下来编写
Servlet
和
Jsp
代码:
MyServlet.java:
hello.jsp:
通过maven的tomcat插件启动服务器:
方式一:
输入命令,tomcat7:run,即可启动Tomcat
方式二: 可以看到右上角已经配置完成 访问发现状态码500,请看下节。 六.依赖范围
访问
servlet
后,发现报
500
异常,这是为什么呢?
这是由于项目中引入了
Servlet
和
Jsp
的
jar
包,而在项目运行时,Tomcat
要使用它自带的
Servlet
和
Jsp
的
jar
包,这样就造成了
jar
包冲
突。但如果项目不引入
Servlet
和
Jsp
的
jar
包,则根本无法通过编
译。
此时可以设置依赖的作用范围解决该问题,设置
Servlet
和
Jsp
的
jar包只在编译期起作用,运行时不起作用,这样不仅可以通过编译,
还能在运行时避免
jar
包冲突。
通过在
<dependency>
中添加
<scope>
,可以设置依赖的作用范围,有以下取值:
compile
默认范围。表示该依赖在编译和运行时生效,项目打包时也会将该依赖打包进去。
provided
使用此依赖范围的
Maven
依赖,编译和测试时有效,但在运行时无效。典型的例子是
servlet-api
,在运行时
Web
容器已
经提供依赖,就不需要
Maven
重复地引入一遍。
runtime
runtime
范围表明编译时不需要生效,而只在运行时生效。典型的例子是
JDBC
驱动包,编译时只需要
JDK
的
JDBC
接口即
可,只有运行项目时才需要具体的
JDBC
驱动。
test
test
范围表明使用此依赖范围的依赖,只在编译和运行测试代码的时生效,程序的正常运行不需要此类依赖。典型的例
子就是
JUnit
,它只有在编译测试代码及运行测试的时候才需
要。
system
如果有些你依赖的
jar
包没有
Maven
坐标的,它完全不在Maven
体系中,这时候你可以把它下载到本地硬盘,然后通
过
system
来引用。(不推荐使用)
所以对于Servlet和Jsp依赖,我们添加依赖范围为provided即可。
最好再刷新一下maven
重启项目,即可正常访问
Servlet
和
Jsp 。
? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 21:45:18- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |