最近在使用Maven管理项目的依赖和项目发布,由于对Eclipse中Maven使用没有经验,所有出现了若干问题,故在此记录以便后人知道如何解决此类问题。
问题:项目红叉或Java Resources红叉
解决:
网络上普遍说解决问题(以我的jdk为1.8):
1、windows-首选项-java编译器设置为jdk1.8
2、项目-属性-project facet,设置jdk版本为1.8
但是,根据设置还是没有解决我的问题,项目还是红叉。
我解决方式:
1、自己安装maven,不适用eclipse自带的maven(安装自己搜索-设置MAVEN_HOME和M2_HOME即可)
2、eclipse-首选项-maven-installations添加自己的maven路径,然后去掉EMBEDED,勾选自己的;
3、eclipse-首选项-maven-user settings,global和user的settings都设置为自己的maven/conf/settings.xml
4、更改jdk设置
修改settings.xml,去掉profile注释,修改默认jdk为1.8
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
5、重启eclipse,修改POM.xml,添加servlet和jdk设置
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>3.0.1</version>
</dependency>
</dependencies>
如果不知道对应版本,可以到中央仓库查询,最简单的版本就是:右击项目-->Maven-->Add Dependency,在弹出的添加依赖框中,在Enter groupId,
artifactId下面的编辑框,输入servlet,最下面的列表框自动查找到最新的servlet版本(存在的版本都列列举出来了,这里出现2.3、2.5和3.1.0的版本)
,选择对应版本即可,我配置的是aliyu的mirror。然后选中对应版本,其groupid和artifactid和版本都自动填充,关键选择Scope为Compile即可!
项目对象模型文档pom.xml自动添加对应依赖,否则输入错误版本(没有的版本)则报错(无法下载到)。
<build>
<finalName>BeautyLove</finalName>
<plugins>
<!-- define the project compile level -->
<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>
</plugins>
</build>
6、选中项目,build path,选择libraries,第一项 JRE System Library[JavaSE-1.5],编辑修改为1.8
选中项目,属性,project facets,修改jdk版本1.8
7、此时java resource红叉已经去掉,右击项目,弹出菜单中选择Maven-update projects
此时,项目红叉也已经去掉!
扩展:
提升maven自带的servlet2.3到3.0,(用eclipse通过maven-archetype-webapp原型创建一个javaweb项目默认的servlet版本是2.3,java版本是1.5,太过老旧)。
1、修改web.xml
删除maven生成的web.xml,然后右键项目-->java EE tools-->Generate Deployment Descriptor Stub
生成后变为最新的3.0的了
2、直接修改项目路径下的.settings/org.eclipse.wst.common.project.facet.core.xml
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<fixed facet="wst.jsdt.web"/>
<installed facet="java" version="1.8"/>
<installed facet="jst.web" version="3.0"/>
<installed facet="wst.jsdt.web" version="1.0"/>
</faceted-project>
修改jdk为1.8,修改web为3.0。保存,刷新项目即可。