plugin para descargar compiler java eclipse maven

java - para - maven-compiler-plugin



Cambiando la versión del Módulo Web Dinámico en el Proyecto Eclipse Maven (3)

Estoy intentando configurar Dynamic Web Module 3.0 para admitir el desarrollo de Java 6. Recibo este error en la pestaña Problemas del eclipse cada vez que hago Maven > Update Project .

Dynamic Web Module 3.1 requires Java 1.7 or newer.

Parece que nada va mal, pero me debe faltar algo porque constantemente recibo este error.

A continuación se muestran los contenidos de mi .settings / org.eclipse.wst.common.project.facet.core.xml

<?xml version="1.0" encoding="UTF-8"?> <faceted-project> <fixed facet="jst.java"/> <fixed facet="jst.web"/> <installed facet="jst.java" version="1.6"/> <installed facet="jst.web" version="3.0"/> </faceted-project>

En eclipse, mi compilador de Java está configurado a 1.6 correctamente. En la pestaña Project Facets, Dynamic Web Module se especifica correctamente como versión 3.0, y Java también aparece como 1.6 en Project Facets.

En mi archivo pom.xml, también he configurado la versión de Java en consecuencia:

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin>

Como nota al margen, también debo mencionar que estoy haciendo una compilación de Java puro con un WebApplicationInitializer y no tengo ningún archivo web.xml.

Cualquier ayuda es muy apreciada cuando intento aplastar este mensaje de error aparentemente irrelevante.

EDITAR: contenido pom.xml añadido

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>net.XXXXX</groupId> <artifactId>XXXXX</artifactId> <version>1.0-SNAPSHOT</version> <name>XXXXX</name> <packaging>war</packaging> <url>http://maven.apache.org</url> <build> <finalName>XXXXX</finalName> <plugins> <!-- Source level should be 1.6 (not Maven default) for Java EE 6 projects --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> <!-- When using xml-less approach, need to disable Maven''s warning about missing web.xml --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin> </plugins> </build> <dependencies> <!-- JUnit testing --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <!-- Spring Core --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>4.0.2.RELEASE</version> </dependency> <!-- Spring MVC --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.0.2.RELEASE</version> </dependency> <!-- Spring Context without commons-logging --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.0.2.RELEASE</version> <exclusions> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> </exclusions> </dependency> <!-- Spring Security core --> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-core</artifactId> <version>3.2.1.RELEASE</version> </dependency> <!-- Spring Security config --> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-config</artifactId> <version>3.2.1.RELEASE</version> </dependency> <!-- Spring Security web --> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-web</artifactId> <version>3.2.1.RELEASE</version> </dependency> <!-- jcl-over-slf4j --> <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> <version>1.7.6</version> </dependency> <!-- slf4j-api --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.6</version> </dependency> <!-- slf4j-log4j12 --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.6</version> </dependency> <!-- log4j --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <!-- Need servlet API for compiling the classes. Not needed in runtime --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> <!-- Required for xml-less configuration of Spring via @Configuration annotations --> <dependency> <groupId>cglib</groupId> <artifactId>cglib-nodep</artifactId> <version>3.1</version> </dependency> <!-- Required for getting Spring working with Hibernate --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>4.0.2.RELEASE</version> </dependency> <!-- Hibernate --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>4.3.4.Final</version> </dependency> <!-- For using JPA instead of "pure Hibernate" --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>4.3.4.Final</version> </dependency> <!-- DB connection pooling for production applications --> <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>20030825.184428</version> </dependency> <!-- Concrete JDBC driver for MySQL DB --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.29</version> </dependency> <!-- Add Taglib support --> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> </dependencies> </project>


En un proyecto nuestro, agregamos para cambiar la declaración del elemento raíz web.xml , cambiando de:

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">

a:

<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5" >

Probablemente Eclipse esperaba que cumpliera con una especificación de versión de Servlet diferente. También en nuestro caso, no tuvimos problemas de compilación ni de tiempo de ejecución.

EDITAR: En su caso, donde no estaba usando un archivo web.xml, existía la siguiente dependencia de pom, que probablemente estaba confundiendo el complemento de Maven de Eclipse:

<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency>

Cámbielo a "3.0.1". (Resulta que WebApplicationInitializer requiere " entornos Servlet 3.0+ " y no 3.1+)


Intente cambiar su versión de JRE / JDK a 1.7. El módulo de proyecto web no soporta 1.6.