Eclipse创建Maven项目红叉

    最近在使用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。保存,刷新项目即可。


猜你喜欢

转载自blog.csdn.net/lixiang987654321/article/details/80873131