创建一个maven web项目的种种问题
2017-07-13 19:05
274 查看
一个还不错的创建maven web步骤
如果你觉得这个教程已经够了,下面就不用看了。
如果你觉的还有很多疑惑,请继续往下看,说不定会有所启发
几个预备知识:
MAVEN项目标准目录结构 (重要)
Eclipse视图:navigator、 package explorer、 project explorer
Eclipse Project Facets各项意义
Eclipse中的build path详解
eclipse创建文件package,source folder和folder区别及相互转换(重要)
创建一个Maven web项目,网上有很多教程,大致有这么几类:
1. 直接创建maven web【一步到位型,也就是我一开始给的那个链接的方法】
右键——new——other——Maven——maven Project——Next——选择maven-archetype-webapp——填Group Id 和Artifact Id, Finish——其他一些关键maven项目操作
2. maven + web【maven转web型1】
右键——new——other——Maven——maven Project——Next——勾选上Create a simple Project——填Group Id 和Artifact Id, Finish
3. maven + web【maven转web型2】
右键——new——other——Maven——maven Project——Next——Next(默认选择那个quickl start)——填Group Id 和Artifact Id, Finish——其他一些关键maven项目操作
4. web + maven【web转maven型】
a.先创建一个Dynamic Web Project项目
b.选中项目——右键——configure——Convert to maven project(转换为maven项目,可见的表现就是在项目根目录增加了pom.xml文件)——其他一些关键maven项目操作
那么“其他一些关键maven项目操作”都有哪些操作呢,虽然 以上方法各不相同,但因为最终要达到的目的是一样的,所以我总结一些共性操作步骤:
1. 先保证jdk版本的正确性。
a.设置项目jdk【见下面“设置项目jdk”操作步骤】
b.设置项目编译java版本【见下面“设置项目编译java版本”】
2. 把maven项目标准结构创建出来:(注意,这都是“文件夹”)
src/main/java【必须】
src/main/webapp【必须】
src/main/resource
src/test/java【必须】
src/test/resource
3. 把src/main/java和src/test/java设置为“source folder ”(这个文件夹内的东西 要被编译)【见“设置文件夹为source folder”】
4. 设置web特性,生成WebContent文件夹(包括里面的web.xml,如果已经有了,或者是直接创建的maven-web项目就不用做这一步了)【见“设置maven项目的web特性”】
5. 把WebContent中的WEB-INF和META-INF两个文件夹拷贝到src/main/webapp中(如果已经有了就不用做了)
6. 设置部署路径【见“设置部署路径”】
基本只要把上面这6步都做过的,应该就可以创建出一个没有错误的Mavent web项目
但是由于eclipse本身的各种各样的问题,不能保证一定没有错,有些错误是那种:同样的操作做第一遍有错,做第二遍可能就没了,也可能出现新的错误。此时那就重新做一遍吧。这几种创建项目的方式我也是来来回回的重试了N次(但越做 出错的可能就越小)
总的来说 创建一个maven web项目,没有“一键完成”的方式,由于maven的目录结构、部署路径问题、jdk版本问题等,多多少少都要需要其他操作配置
========具体的一些操作方法========================
设置项目jdk:
方法一:(常规操作)
a.右键——Build Path——Configure Build Path——Libraries(选项卡)
b.选中条目中的JRE system Library[...]【此时右边的Remove按钮被点亮】
c.点击Remove
d.点击右边按钮Add Library
e.选择JRE System Library
f.选择Alternate JRE(如果你默认jdk不是这个项目所需要的);或者直接选择Workspace default JRE...(如果这个项目需要就是eclipse默认的jdk)
g.点击finish。(该子页面关闭)
h.点右下角Apply按钮(生效)
方法二:(快捷操作)
a.打开eclipse项目视
c8b7
图“Package Explorer”
b.在该视图中找到你的项目,并打开
c.在里面可以看到JRE System Library,选中它,右键——properties
d.下面的操作同方法一
设置项目编译java版本
选中项目——右键——properties——Java Compiler
将右边Compiler compliance level设置为你需要的java版本
设置文件夹为source folder
1. 切换到Project Explorer视图
2. 选中文件夹src/main/java(如果是树形的结构,就直接选中java这个目录)——右键——Build Path——Use as Source Folder(然后你就在项目结构上可以看到src/main/java出现在Java Resource下面)
3. 同理把src/test/java也设置为source folder
设置maven项目的web特性
1.选中项目——右键——properties——Project Facets
勾选上Dynamic Web Module,选择自己需要的版本(此时在该页面下面应该会出现Further configurtion available...的链接,如果没出现也没关系,也先点Apply让它生效。然后再把那个勾选去掉,再点Apply,再选中那个选项,此时链接应该就出现了)
2. 点击链接“Further configurtion availabl...”
3. 在弹出的页面里勾选上Generate web.xml deplogyment descriptor(生成web.xml)
4.点击“ok”,再返回项目就能看到熟悉的WebContent目录了
设置部署路径
1.选中项目,右键——properties——Deployment Assembly
设置成如下图的样子
![](https://oscdn.geek-share.com/Uploads/Images/Content/202008/19/704b22275c56a41161c97920fce04c4a)
主要是把原来的WebContent删除(如果有的话),增加上webapp
增加Maven Dependencies
a.点击右边Add按钮
b.选中Java Bulld Path Entries,点击next
c.选中Mavent Dependenties
====================================================
注意一个操作问题:
右键——maven——update maven project,这个操作和刷新不一样,它有“置回默认值”的作用,比如你 之前你设置的使用jdk1.8编译,update后,就可能变为默认1.5了
遗留问题:(有知道的请留言告知,我在博客上做补充)
一:
方法2 中我实验的结果是:有两个错误总是解决不了
1.Dynamic Web Module 3.0 requires Java 1.6 or newer.【实际上我用的jdk1.8】
2.One or more constraints have not been satisfied【网上说原因是:Deployment Assembly跟Java版本不匹配,即maven默认编译版本与使用的jdk不匹配。但我用的都是jdk1.8,哪来的不一致】
二:
如图
![](https://oscdn.geek-share.com/Uploads/Images/Content/202008/19/a715b9452b682a8a25086e94cdfb3037)
这个Maven Dependencies我在用方法2和方法4创建Maven web项目总显示不出来,但实际上他在Build Path里是有的:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202008/19/be30a4070d281bda867df37fe599f1d1)
而且也不在网上有人说的Library下面
![](https://oscdn.geek-share.com/Uploads/Images/Content/202008/19/0db47234ba02a0898deebe7e5730ec1b)
我在无数次实验的过程中,甚至还出现过使用方法2创建,创建完Maven项目是有的,但加上web特性之后就没了。不过似乎到目前为止,这个现象并没有引起什么问题,这个项目我会继续做下去,有相关问题我会继续补充修改该博文
三:
说实话,虽然这些方法我都试了,但是,我更喜欢用方法3,因为方法1也有问题:
1. 比如我一开始给的那个链接,他在第3步选maven-archetype-webapp是这个样子的
![](https://oscdn.geek-share.com/Uploads/Images/Content/202008/19/55603eda694030cf6681304999042400)
而我是这个样子的:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202008/19/d8727ba6d49f637d8fbb3d525aaf93fa)
不知到是不是因为这个的,我在第8步,总是选不了Dynamic Web Module 3.0,报错:
Cannot change version of project facet Dynamic Web Module to 3.0
虽然在网上也查到解决办法了,解决办法链接见最后的“解决Cannot...”,但总觉得不好。而且还有个问题:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202008/19/1b6b5f6ecddee241eec5994456ad6712)
我们发现 它自动生成的webapp里面没有META-INF文件夹,这虽然不是什么大问题(现在我还不知道它会引起什么问题),需要的时候可以从其他地方拷贝进去。
但是有了这两个问题 需要一个一个解决,总觉得这方法“不正宗”,所以我推荐方法3
==========================================
你可能需要的一些链接:
在eclipse中新建Dynamic web project时选择2.5和3.0的区别
解决Cannot change version of project facet Dynamic Web M
不同版本(2.3,2.4,2.5,3.0)的Servlet web.xml 头信息(注意:这里面3.0的那个头信息是错的,如果需要,请自己在eclipse中通过创建web项目自动生成)
web.xml is missing and <failOnMissingWebXml>
is set to true【stackoverflow,外国网站,可能打开会很慢。这个错意思就是说:当你建一个war输出类型的maven项目时,maven认为这是一个web项目,应该有一个web.xml,但它却没发现,所以报错。这个错可以在做了步骤6后应该就可以解决】
整理的比较匆忙,如有问题,欢迎拍砖,我会尽快更改
如果你觉得这个教程已经够了,下面就不用看了。
如果你觉的还有很多疑惑,请继续往下看,说不定会有所启发
几个预备知识:
MAVEN项目标准目录结构 (重要)
Eclipse视图:navigator、 package explorer、 project explorer
Eclipse Project Facets各项意义
Eclipse中的build path详解
eclipse创建文件package,source folder和folder区别及相互转换(重要)
创建一个Maven web项目,网上有很多教程,大致有这么几类:
1. 直接创建maven web【一步到位型,也就是我一开始给的那个链接的方法】
右键——new——other——Maven——maven Project——Next——选择maven-archetype-webapp——填Group Id 和Artifact Id, Finish——其他一些关键maven项目操作
2. maven + web【maven转web型1】
右键——new——other——Maven——maven Project——Next——勾选上Create a simple Project——填Group Id 和Artifact Id, Finish
3. maven + web【maven转web型2】
右键——new——other——Maven——maven Project——Next——Next(默认选择那个quickl start)——填Group Id 和Artifact Id, Finish——其他一些关键maven项目操作
4. web + maven【web转maven型】
a.先创建一个Dynamic Web Project项目
b.选中项目——右键——configure——Convert to maven project(转换为maven项目,可见的表现就是在项目根目录增加了pom.xml文件)——其他一些关键maven项目操作
那么“其他一些关键maven项目操作”都有哪些操作呢,虽然 以上方法各不相同,但因为最终要达到的目的是一样的,所以我总结一些共性操作步骤:
1. 先保证jdk版本的正确性。
a.设置项目jdk【见下面“设置项目jdk”操作步骤】
b.设置项目编译java版本【见下面“设置项目编译java版本”】
2. 把maven项目标准结构创建出来:(注意,这都是“文件夹”)
src/main/java【必须】
src/main/webapp【必须】
src/main/resource
src/test/java【必须】
src/test/resource
3. 把src/main/java和src/test/java设置为“source folder ”(这个文件夹内的东西 要被编译)【见“设置文件夹为source folder”】
4. 设置web特性,生成WebContent文件夹(包括里面的web.xml,如果已经有了,或者是直接创建的maven-web项目就不用做这一步了)【见“设置maven项目的web特性”】
5. 把WebContent中的WEB-INF和META-INF两个文件夹拷贝到src/main/webapp中(如果已经有了就不用做了)
6. 设置部署路径【见“设置部署路径”】
基本只要把上面这6步都做过的,应该就可以创建出一个没有错误的Mavent web项目
但是由于eclipse本身的各种各样的问题,不能保证一定没有错,有些错误是那种:同样的操作做第一遍有错,做第二遍可能就没了,也可能出现新的错误。此时那就重新做一遍吧。这几种创建项目的方式我也是来来回回的重试了N次(但越做 出错的可能就越小)
总的来说 创建一个maven web项目,没有“一键完成”的方式,由于maven的目录结构、部署路径问题、jdk版本问题等,多多少少都要需要其他操作配置
========具体的一些操作方法========================
设置项目jdk:
方法一:(常规操作)
a.右键——Build Path——Configure Build Path——Libraries(选项卡)
b.选中条目中的JRE system Library[...]【此时右边的Remove按钮被点亮】
c.点击Remove
d.点击右边按钮Add Library
e.选择JRE System Library
f.选择Alternate JRE(如果你默认jdk不是这个项目所需要的);或者直接选择Workspace default JRE...(如果这个项目需要就是eclipse默认的jdk)
g.点击finish。(该子页面关闭)
h.点右下角Apply按钮(生效)
方法二:(快捷操作)
a.打开eclipse项目视
c8b7
图“Package Explorer”
b.在该视图中找到你的项目,并打开
c.在里面可以看到JRE System Library,选中它,右键——properties
d.下面的操作同方法一
设置项目编译java版本
选中项目——右键——properties——Java Compiler
将右边Compiler compliance level设置为你需要的java版本
设置文件夹为source folder
1. 切换到Project Explorer视图
2. 选中文件夹src/main/java(如果是树形的结构,就直接选中java这个目录)——右键——Build Path——Use as Source Folder(然后你就在项目结构上可以看到src/main/java出现在Java Resource下面)
3. 同理把src/test/java也设置为source folder
设置maven项目的web特性
1.选中项目——右键——properties——Project Facets
勾选上Dynamic Web Module,选择自己需要的版本(此时在该页面下面应该会出现Further configurtion available...的链接,如果没出现也没关系,也先点Apply让它生效。然后再把那个勾选去掉,再点Apply,再选中那个选项,此时链接应该就出现了)
2. 点击链接“Further configurtion availabl...”
3. 在弹出的页面里勾选上Generate web.xml deplogyment descriptor(生成web.xml)
4.点击“ok”,再返回项目就能看到熟悉的WebContent目录了
设置部署路径
1.选中项目,右键——properties——Deployment Assembly
设置成如下图的样子
主要是把原来的WebContent删除(如果有的话),增加上webapp
增加Maven Dependencies
a.点击右边Add按钮
b.选中Java Bulld Path Entries,点击next
c.选中Mavent Dependenties
====================================================
注意一个操作问题:
右键——maven——update maven project,这个操作和刷新不一样,它有“置回默认值”的作用,比如你 之前你设置的使用jdk1.8编译,update后,就可能变为默认1.5了
遗留问题:(有知道的请留言告知,我在博客上做补充)
一:
方法2 中我实验的结果是:有两个错误总是解决不了
1.Dynamic Web Module 3.0 requires Java 1.6 or newer.【实际上我用的jdk1.8】
2.One or more constraints have not been satisfied【网上说原因是:Deployment Assembly跟Java版本不匹配,即maven默认编译版本与使用的jdk不匹配。但我用的都是jdk1.8,哪来的不一致】
二:
如图
这个Maven Dependencies我在用方法2和方法4创建Maven web项目总显示不出来,但实际上他在Build Path里是有的:
而且也不在网上有人说的Library下面
我在无数次实验的过程中,甚至还出现过使用方法2创建,创建完Maven项目是有的,但加上web特性之后就没了。不过似乎到目前为止,这个现象并没有引起什么问题,这个项目我会继续做下去,有相关问题我会继续补充修改该博文
三:
说实话,虽然这些方法我都试了,但是,我更喜欢用方法3,因为方法1也有问题:
1. 比如我一开始给的那个链接,他在第3步选maven-archetype-webapp是这个样子的
而我是这个样子的:
不知到是不是因为这个的,我在第8步,总是选不了Dynamic Web Module 3.0,报错:
Cannot change version of project facet Dynamic Web Module to 3.0
虽然在网上也查到解决办法了,解决办法链接见最后的“解决Cannot...”,但总觉得不好。而且还有个问题:
我们发现 它自动生成的webapp里面没有META-INF文件夹,这虽然不是什么大问题(现在我还不知道它会引起什么问题),需要的时候可以从其他地方拷贝进去。
但是有了这两个问题 需要一个一个解决,总觉得这方法“不正宗”,所以我推荐方法3
==========================================
你可能需要的一些链接:
在eclipse中新建Dynamic web project时选择2.5和3.0的区别
解决Cannot change version of project facet Dynamic Web M
不同版本(2.3,2.4,2.5,3.0)的Servlet web.xml 头信息(注意:这里面3.0的那个头信息是错的,如果需要,请自己在eclipse中通过创建web项目自动生成)
web.xml is missing and <failOnMissingWebXml>
is set to true【stackoverflow,外国网站,可能打开会很慢。这个错意思就是说:当你建一个war输出类型的maven项目时,maven认为这是一个web项目,应该有一个web.xml,但它却没发现,所以报错。这个错可以在做了步骤6后应该就可以解决】
整理的比较匆忙,如有问题,欢迎拍砖,我会尽快更改
相关文章推荐
- maven web项目不能创建src/main/java等文件夹的问题
- Maven3 用Maven创建一个web项目
- 在Eclipse中创建 Maven SpringMVC 项目 cannot change version web module 2.5 问题
- 配合m2eclipse创建一个标准的maven web项目.
- maven(二)创建一个maven的web项目中解决Cannot change version of project facet Dynamic web module to 2.5
- 使用Maven创建一个Spring MVC Web 项目
- Maven使用-创建一个Web项目
- maven(一)创建一个maven的web项目
- 【Maven】创建一个结构清晰基于Maven的JavaWeb项目
- 在Eclipse中使用Maven来创建一个web项目
- 配合m2eclipse创建一个标准的maven web项目
- 配合m2eclipse创建一个标准的maven web项目
- 用Maven创建一个web项目
- 用STS和Maven的方式创建一个JavaWeb项目
- Maven3路程(三)用Maven创建一个web项目
- 如何在IntelJ下用Maven创建一个Web项目
- maven web项目不能创建src/main/java等文件夹的问题
- maven web项目不能创建src/main/java等文件夹的问题
- maven 学习---用Eclipse创建一个Maven Web项目
- 如何用maven创建一个web项目