Writing by Tor小黑 —-心中藏之,无日忘之
eclipse新建maven项目
1.前提
已经配置好 JDK
,Maven
2.新建项目
step1:File
==>Maven Project
如图所示
如果没有2
-Maven Project
,否则选择3
==>Other
,如选图所示
step2:
不需要更改,点击下一步即可
step3:
选择项目类型
注:如果选项为空,选择其他Catalog选项即可
step4:
项目参数配置
主要参数解释
group Id: 项目的基本包名
Artifact Id: 项目名
package: 默认生成的一个包名,不写也可以
3.项目配置
1、修改web.xml
由于Maven中的 maven-archetype-webapp 样板项目的 web.xml 是2.3版本的,我们需要替换成新版本。
复制下面的内容进行替换
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="schedule-console" version="3.0">
<display-name>Archetype Created Web Application</display-name>
</web-app>
2、index.jsp 文件报错解决
方式一: 在pom.xml文件中引入jar包依赖
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
方式二:添加tomcat支持
右键项目——->BUild Path
——->Configure Build Path…
点击==>Java Build Path
==> Libraries
==> Add Libraries
==> Server Runtime
选择已经配置好的Tomcat,点击Finish
配置完成后点击Apply and Close
3、修改pom.xml
在pom.xml 里面build 标签下添加 maven编译插件
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
4、添加缺少的目录并指定输出路径
Maven规定,必须创建以下几个包,并且分别对应相应的输出路径
src/main/resources
src/main/java
src/test/resources
src/test/java
右键项目——->BUild Path
——->Configure Build Path…
(1)在Order and Export (这里是控制项目中包的显示顺序的)这个栏里会发现有几个目录显示missing(丢失),随便选中一个改变下顺序(Up 或者 Down 或者 Top 或者 Bottom),然后点击应用,OK,丢失的目录会在项目中显示出来,再次进到这个地方,红叉标识已经消失了。
(2)接着在Source里会发现已经有三个目录了,所以点击Add Folder… 添加缺少的目录(这里注意把Allow output folders for source folders 上,方便下一步进行输出路径的设置)
点击Create New Folder…
,输入缺少的包名src/test/resources
,直接点击完成,回到这个界面点击OK
就行
(3)接着就会看到Source这里多了一个刚才添加的包,这个新加的包没有指定输出目录,需要进行修改
在Source 里面设定4个文件夹的输出Output folder
,双击进行修改
分别修改输出路径为
/src/main/resources
对应 target/classes
/src/main/java
对应 target/classes
/src/test/resources
对应 target/test-classes
/src/test/java
对应 target/test-classes
我这只需要修改第四个目录就可以了(前三个都默认设置好了,如果你的没设置好就设置一下)
上一步设置之后如果出现以下报错信息,将图中标识 1 的地方双击修改为yes即可
5、配置项目部署程序集(Web Deployment Assembly)
右键项目——->Properties
——->Deployment Assembly
(1)删除test的两项,因为test是测试使用,并不需要部署。
(2)添加Maven依赖,设置将Maven的jar包发布到lib下,如果已经有了就不需要添加了。Add
——-> Java Build Path Entries
——-> Maven Dependencies
——-> Finish
设置完成效果如下
6.将Maven项目转换成Dynamic Web Project
(1)右键项目——->Properties
在左侧选择 Project Facets,单击右侧的 Convert faceted from
刚进来时是这样的,需要把Dynamic Web Module (动态web模块)的版本修改为 3.1 (最新版),Java的版本修改为项目用的1.8
这里可能会报一个错误,在修改动态web模块版本的时候会提示Cannot change version of project facet Dynamic Web Module to 3.1
不要紧,只需要去掉动态web模块前面的对勾,点击OK,接着再进入这个界面就能够修改动态web模块的版本了。
修改 Content directory(内容目录) 的值 WebContent 为 src/main/webapp ,单击OK,然后回到上一步窗口直接点击OK
这里可能出现的问题是,会给你个提示目录错误的弹窗,不要紧,你可以检查下之前文件输出路径的设置是否有问题(Java Build Path ——-> Source),修改过来应该就没问题了
完成这一步之后你可以检查下你的Java Build Path 中的Libraries 中的jdk版本,还有Java Compiler (编译环境),发现都已经改为1.8版本了。
(2)接下来你项目中的pom.xml 可能报一个错web.xml is missing and <failOnMissingWebXml> is set to true
,如果没报错,可以忽略不看
解决办法:
使用maven创建项目有时在pom.xml的war处出现failOnMissingWebXml的错误,根据pom.xml 可以知道这个项目是web项目,打包时打成war包。
错误提示的是丢失web.xml,所以如果项目里没有web.xml,则在项目里添加一个web.xml,刷新一下项目,就应该没有错误了。
如果还有错的话就需要在eclispe上方点击Project
——->Clean
清理一下这个项目了。
经过这两步错误就应该已经清除了。
7、其他错误处理
Cannot change version of project facet Dynamic Web Module to 3.0
如果报错 Cannot change version of project facet Dynamic Web Module to 3.0
例如
Cannot change version of project facet Dynamic Web Module to 3.0.
Java compiler level does not match the version of the installed Java project facet.
One or more constraints have not been satisfied.
Project configuration is not up-to-date with pom.xml. Select: Maven->Update Project... from the project context menu or use Quick Fix.
Dynamic Web Module 3.0 requires Java 1.6 or newer.
Java compiler level does not match the version of the installed Java project facet.
遇到这个错误,是maven项目在eclipse里以web项目部署出错,转化版本失败。Dynamic Web Module版本不对,或者java版本不对。在这个时候,只需要改3个地方就可以完美解决这个问题。
我们使用eclipse的向导快速构建的maven项目,都是默认配置,这些配置很是老旧,需要我们自己更改下。
1、修改.settings里的org.eclipse.wst.common.project.facet.core.xml文件,设置Dynamic Web Module版本和java版本。
<installed facet="java" version="1.8"/>
<installed facet="jst.web" version="3.1"/>
如果不知道如何找到这个文件,需要打开Navigator文档模式。具体是在windows--show view--Navigator。
报错Dynamic Web Module 3.0 requires Java 1.6 or newer
错误信息如下
Dynamic Web Module 3.0 requires Java 1.6 or newer
解决办法
在pom.xml中build下配置插件,如下图所示
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
ps:该插件可以同时解决,每次update Maven时,JDK自动变回1.5的问题
处理完成后重新update下项目即可