Escribí un código maven en netbeans que tiene aproximadamente más de 2000 líneas. Cuando lo compilo en netbeans, todo está bien, pero si quiero ejecutarlo en la línea de comandos, obtendré estos errores:
generics are not supported in -source 1.3
(use -source 5 or higher to enable generics)
ArrayList<ArrayList<Integer>> list = new ArrayList<ArrayList<Integer>>();
generics are not supported in -source 1.3
(use -source 5 or higher to enable generics)
HashSet<Double> resid_List = new HashSet<Double>(Arrays.asList(resid_val));
generics are not supported in -source 1.3
(use -source 5 or higher to enable generics)
List<Integer> ind_ovlpList = new ArrayList<Integer>(Arrays.asList(ind_ovlp));
generics are not supported in -source 1.3
(use -source 5 or higher to enable generics)
public class ColumnComparator implements Comparator<double[]> {
annotations are not supported in -source 1.3
(use -source 5 or higher to enable annotations)
@Override
Intenté usar Java 1.3.1, errores del compilador , pero obtuve más errores. En otras publicaciones descubrí que debería modificar pom.xml, pero no sé cómo. Aquí está mi pom.xml
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany</groupId>
<artifactId>mavenmain</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>mavenmain</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>gov.nist.math</groupId>
<artifactId>jama</artifactId>
<version>1.0.2</version>
</dependency>
</dependencies>
</project>
Sería genial si me puedes ayudar.
Respuestas:
Vea la página de configuración para el complemento compilador maven:
http://maven.apache.org/plugins/maven-compiler-plugin/examples/set-compiler-source-and-target.html
Ah, y: no use Java 1.3.x, las versiones actuales son Java 1.7.xo 1.8.x
fuente
maven-compiler-plugin ya está presente en la dependencia de jerarquía de complementos en pom.xml. Check in POM efectivo.
Para abreviar, puede usar propiedades como esta:
Estoy usando maven 3.2.5
fuente
En general, no desea valorar solo la
source
versión (javac -source 1.8
por ejemplo) pero desea valorar tantosource
latarget
versión como la versión (javac -source 1.8 -target 1.8
por ejemplo).Tenga en cuenta que desde Java 9, tiene una manera de transmitir información y de una manera más sólida para la compatibilidad de compilación cruzada (
javac -release 9
).Maven que envuelve el
javac
comando proporciona múltiples formas de transmitir todas estas opciones estándar de JVM.¿Cómo especificar la versión JDK?
Usar
maven-compiler-plugin
omaven.compiler.source
/maven.compiler.target
propiedades para especificarsource
ytarget
son equivalentes.y
son equivalentes de acuerdo con la documentación de Maven del complemento del compilador ya que
<source>
los<target>
elementos y en la configuración del compilador usan las propiedadesmaven.compiler.source
ymaven.compiler.target
si están definidos.Acerca de los valores predeterminados para
source
ytarget
, tenga en cuenta que desde el3.8.0
compilador maven, los valores predeterminados han cambiado de1.5
a1.6
.Desde el maven-compiler-plugin 3.6 tiene una nueva forma de especificar la versión de Java
Puedes usar el
release
argumento :También puede declarar solo la propiedad del usuario
maven.compiler.release
:Pero en este momento, la última no será suficiente ya que la
maven-compiler-plugin
versión predeterminada que usa no se basa en una versión lo suficientemente reciente.El
release
argumento de Maven transmiterelease
: una nueva opción estándar JVM que podríamos pasar de Java 9:De esta manera proporciona una forma estándar para especificar la misma versión para el
source
, lostarget
y lasbootstrap
opciones de JVM.Tenga en cuenta que la especificación de
bootstrap
es una buena práctica para las compilaciones cruzadas y no le hará daño si tampoco realiza compilaciones cruzadas.¿Cuál es la mejor manera de especificar la versión JDK?
Para Java 8 y a continuación:
Ni
maven.compiler.source
/maven.compiler.target
propiedades o usar elmaven-compiler-plugin
es mejor. No cambia nada en los hechos, ya que finalmente las dos formas se basan en las mismas propiedades y el mismo mecanismo: el complemento compilador maven core.Bueno, si no necesita especificar otras propiedades o comportamientos que las versiones de Java en el complemento del compilador, usar este método tiene más sentido ya que es más conciso:
Desde Java 9:
El
release
argumento (tercer punto) es una forma de considerar seriamente si desea utilizar la misma versión para elsource
y eltarget
.fuente
Me enfrenté al mismo problema en el proyecto eclipse neon simple maven java
Pero agrego los detalles a continuación dentro del archivo pom.xml
Después de hacer clic derecho en proyecto> maven> actualizar proyecto (actualización de fuerza marcada)
Me resuelve mostrar un error en el proyecto
Espero que sea útil
Thansk
fuente
fuente