J'ai écrit un code maven sur les netbeans qui a environ plus de 2000 lignes. Quand je le compile sur netbeans, tout va bien, mais si je veux l'exécuter en ligne de commande, j'obtiendrai ces erreurs:
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
J'ai essayé d'utiliser Java 1.3.1, des erreurs de compilation , mais j'ai eu plus d'erreurs. J'ai trouvé dans d'autres publications que je devais modifier pom.xml, mais je ne sais pas comment. Voici mon 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>
Ce serait génial si vous pouviez m'aider.
Réponses:
Voir la page de configuration du plugin du compilateur maven:
http://maven.apache.org/plugins/maven-compiler-plugin/examples/set-compiler-source-and-target.html
Oh, et: n'utilisez pas Java 1.3.x, les versions actuelles sont Java 1.7.x ou 1.8.x
la source
maven-compiler-plugin il est déjà présent dans la dépendance de la hiérarchie des plugins dans pom.xml. Vérifiez POM efficace.
Pour faire court, vous pouvez utiliser des propriétés comme celle-ci:
J'utilise maven 3.2.5
la source
Généralement, vous ne voulez pas valoriser uniquement la
source
version (javac -source 1.8
par exemple) mais vous souhaitez valoriser à la fois lasource
et latarget
version (javac -source 1.8 -target 1.8
par exemple).Notez qu'à partir de Java 9, vous avez un moyen de transmettre à la fois des informations et d'une manière plus robuste pour la compatibilité de compilation croisée (
javac -release 9
).Maven qui encapsule la
javac
commande offre plusieurs façons de transmettre toutes ces options standard JVM.Comment spécifier la version JDK?
Utiliser les propriétés
maven-compiler-plugin
oumaven.compiler.source
/maven.compiler.target
pour spécifier lesource
et letarget
sont équivalents.et
sont équivalents selon la documentation Maven du plugin du compilateur puisque
<source>
les<target>
éléments et dans la configuration du compilateur utilisent les propriétésmaven.compiler.source
etmaven.compiler.target
s'ils sont définis.À propos des valeurs par défaut de
source
ettarget
, notez que depuis le3.8.0
compilateur maven, les valeurs par défaut sont passées de1.5
à1.6
.Depuis le plug-in maven-compiler-plugin 3.6, vous avez une nouvelle façon de spécifier la version Java
Vous pouvez utiliser l'
release
argument :Vous pouvez également déclarer uniquement la propriété utilisateur
maven.compiler.release
:Mais pour le moment, la dernière ne suffira pas car la
maven-compiler-plugin
version par défaut que vous utilisez ne repose pas sur une version suffisamment récente.L'
release
argument Maven donnerelease
: une nouvelle option standard JVM que nous pourrions passer de Java 9:De cette façon , fournit un moyen standard pour spécifier la même version pour la
source
, lestarget
et lesbootstrap
options de la JVM.Notez que la spécification de
bootstrap
est une bonne pratique pour les compilations croisées et que cela ne fera pas de mal si vous ne faites pas de compilations croisées non plus.Quelle est la meilleure façon de spécifier la version JDK?
Pour Java 8 et versions antérieures:
Ni
maven.compiler.source
/maven.compiler.target
properties, ni l' utilisation demaven-compiler-plugin
est mieux. Cela ne change rien dans les faits puisque finalement les deux façons s'appuient sur les mêmes propriétés et le même mécanisme: le plugin du compilateur core maven.Eh bien, si vous n'avez pas besoin de spécifier d'autres propriétés ou comportements que les versions Java dans le plugin du compilateur, utiliser cette méthode est plus logique car c'est plus concis:
Depuis Java 9:
L'
release
argument (troisième point) est un moyen de bien réfléchir si vous souhaitez utiliser la même version pour lesource
et letarget
.la source
J'ai rencontré le même problème dans le projet java maven eclipse neon simple
Mais j'ajoute ci-dessous des détails dans le fichier pom.xml
Après un clic droit sur le projet> maven> mettre à jour le projet (cocher la mise à jour forcée)
Il me résout d'afficher une erreur sur le projet
J'espère que cela vous sera utile
Thansk
la source
la source