you than sirve running rather que provided perhaps para mvn jre jdk instalar dependencias compiler como comandos añadir are eclipse maven jar sun pom.xml

than - mvn eclipse eclipse para que sirve



La compilación de Maven falla mientras que el eclipse tiene éxito (4)

Si la versión de Java es diferente, agregue el compilador maven-compiler

<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.1</version> <configuration> <target>1.6</target> <source>1.6</source> <encoding>UTF-8</encoding> </configuration> </plugin> </plugins> </build>

con la configuración de fuente y destino apuntando hacia 1.6 y actualizando la configuración del proyecto desde el menú contextual del proyecto Maven, resolverá el problema de falta de sincronización en muchos casos (lo que conduce a diferentes resultados de compilación):

Estoy usando maven3.03 y Eclipse 3.5 en Windows XP. Convertí un viejo proyecto web para estar en el estilo de configuración maven.
Cuando compilo el proyecto en eclipse todo se compila.
Nota: El classpath contiene: Dependencias Maven y JDK (1.6_018).
Cuando compilo desde línea de comandos usando mvn, obtengo algunos errores:
1.package com.sun.xml.internal.stream.buffer.stax no existe.
2.package com.sun.xml.internal.stream.writers no existe
3.no puede encontrar el símbolo - símbolo: clase XMLDOMWriterImpl
4.package com.sun.xml.internal.messaging.saaj.util no existe
5.package com.sun.xml.internal.bind.v2.runtime.unmarshaller no existe
6.no puede encontrar el símbolo - símbolo: clase NamespaceContexHelper
7.no puede encontrar el símbolo símbolo: clase ByteOutputStream

Puedo ver que esto es algo con tarro de sol. Pero simplemente no puedo entender por qué eclipse está bien y la línea de comando no.

EDITAR : Uno de los errores que no mencioné en la lista anterior es:

[ERROR]<path>/EventsViewer.java:[54,69] inconvertible types found: <br>java.util.SortedMap<java.util.Date,java.util.List<com.myClass>> required: java.util.Map<? extends java.util.Date,? extends java.util.List<com.myOtherClass>>


Cuando veo la misma línea en eclipse, recibo una advertencia:

Type safety: Unchecked cast from SortedMap<Date,List<myClass>> to Map<? extends Date,? extends List<myOtherClass>>

En Eclipse recibo una advertencia y en Maven obtengo un error. Revisé el archivo org.eclipse.jdt.core.prefs y veo que la configuración es org.eclipse.jdt.core.compiler.problem.forbiddenReference = warning.

Actualización : me leyeron algunos de los errores anteriores. El "problema" es que en eclipse aparece como importación no utilizada. Stangly Maven informa esto como un error. Después de eliminar esta importación no utilizada, el error desapareció. Pero aún el problema 3 y 7 occures

Conclusión : supongo que las advertencias se convierten en errores en el javac. ya que no utilizo ningún supressWarnings. Me sorprende que el error sea diferente. ¿Qué es?


Verifique que esté usando el mismo JDK para las compilaciones de Eclipse y Maven. Incluso si crees que lo estás, vuelve a verificarlo de todos modos.

Estos paquetes son algunos de los que se incluyen en algunas versiones de Java y no en otras.


Esta es la verdadera razón quizás de la respuesta del foro maven

"Jerome tiene razón en que no es una práctica recomendada utilizar las clases com.sun de rt.jar. Y especialmente las que están marcadas como" internas "; solo estás pidiendo problemas.

Sin embargo, tenía curiosidad sobre esto, así que probé. La clase anterior puede ser accedida por Eclipse. Sin embargo, la compilación del código en la línea de comando con javac falla con el error "no existe". Así que mi suposición es que el compilador Java de Sun detecta cuándo se accede a una clase especial "interna" y se niega a importar la clase. Eclipse usa un compilador diferente que presumiblemente no tiene esta comprobación.

Maven solo usa el compilador javac disponible en la ruta de ejecución del sistema. Por lo tanto, el problema no tiene nada que ver con Maven en absoluto. Es el compilador que maven invoca y que se niega a compilar la fuente. No puedo ver ninguna marca pública en la línea de comando javac para desactivar este "bloqueo" del acceso interno, así que a menos que quieras evitar el uso del compilador javac de Sun, tendrás que evitar el uso de esta clase interna.

Solo por diversión, probé la sugerencia de Jerome de poner rt.jar en el classpath: javac -cp /usr/java/jdk1.6.0_03/jre/lib/rt.jar Foo.java, pero aún así no pudo compilarse.

La clase ByteOutputStream se puede cargar en tiempo de ejecución a través de Class.forName ("..").

Curiosamente, un proyecto en el que estoy trabajando pasa a importar clase com.sun.org.apache.xml.internal.utils.SAXSourceLocator; y esto funciona bien Se emiten advertencias, pero el código se compila (y sí, está en mi lista de cosas por hacer para arreglar esto :-). Entonces, no todas las clases internas están siendo bloqueadas, solo las seleccionadas. "


Este es mi caso: Tengo el mismo error en IntelliJ después de agregar //TODO , Intellij agregó automáticamente esta línea en la sección de import com.sun.xml.internal.bind.v2.TODO;

Después de eliminar la línea de importación anterior, el problema se resolvió. Ahora puedo compilar con éxito utilizando maven