Ich habe einen Maven-Code für Netbeans geschrieben, der ungefähr mehr als 2000 Zeilen enthält. Wenn ich es auf NetBeans kompiliere, ist alles in Ordnung, aber wenn ich es über die Befehlszeile ausführen möchte, werden folgende Fehler angezeigt:
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
Ich habe versucht, Java 1.3.1 zu verwenden, Compilerfehler , aber ich habe mehr Fehler bekommen. Ich habe aus anderen Posts herausgefunden, dass ich pom.xml ändern sollte, aber ich weiß nicht wie. Hier ist meine 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>
Es wäre toll, wenn Sie mir helfen könnten.
Antworten:
Auf der Konfigurationsseite finden Sie das Maven-Compiler-Plugin:
http://maven.apache.org/plugins/maven-compiler-plugin/examples/set-compiler-source-and-target.html
Oh, und: Verwenden Sie kein Java 1.3.x, aktuelle Versionen sind Java 1.7.x oder 1.8.x.
quelle
maven-compiler-plugin ist bereits in der Abhängigkeit der Plugins-Hierarchie in pom.xml vorhanden. Checken Sie das effektive POM ein.
Kurz gesagt, Sie können Eigenschaften wie diese verwenden:
Ich benutze Maven 3.2.5
quelle
Im Allgemeinen möchten Sie nicht nur die
source
Version (javac -source 1.8
zum Beispiel) bewerten, sondern sowohl diesource
als auch dietarget
Version (javac -source 1.8 -target 1.8
zum Beispiel).Beachten Sie, dass Sie ab Java 9 sowohl Informationen als auch eine robustere Methode für die Kompatibilität zwischen Kompilierungen (
javac -release 9
) bereitstellen können .Maven, der den
javac
Befehl umschließt, bietet mehrere Möglichkeiten, alle diese JVM-Standardoptionen zu übermitteln.Wie gebe ich die JDK-Version an?
Verwenden von
maven-compiler-plugin
odermaven.compiler.source
/maven.compiler.target
Eigenschaften, um diesource
und dietarget
sind äquivalent.und
sind gemäß der Maven-Dokumentation des Compiler-Plugins äquivalent, da die
<source>
und die<target>
Elemente in der Compilerkonfiguration die Eigenschaften verwendenmaven.compiler.source
undmaven.compiler.target
ob sie definiert sind.Informationen zu den Standardwerten für
source
undtarget
Beachten Sie, dass sich die Standardwerte seit3.8.0
dem Maven-Compiler von1.5
bis geändert haben1.6
.Ab dem Maven-Compiler-Plugin 3.6 haben Sie eine neue Möglichkeit, die Java-Version anzugeben
Sie können das
release
Argument verwenden :Sie können auch nur die Benutzereigenschaft deklarieren
maven.compiler.release
:Aber zu diesem Zeitpunkt wird der letzte nicht ausreichen
maven-compiler-plugin
Version jedoch nicht Ihnen verwendete Standardversion nicht auf einer ausreichend aktuellen Version basiert.Das Maven-
release
Argument vermitteltrelease
: eine neue JVM-Standardoption , die wir von Java 9 übergeben könnten:Auf diese Weise bietet einen Standard - Weg , um die gleiche Version für den angeben
source
, dietarget
und diebootstrap
JVM - Optionen.Beachten Sie, dass die Angabe von
bootstrap
eine gute Vorgehensweise für Cross-Compilations ist und nicht schadet, wenn Sie auch keine Cross-Compilations durchführen.Wie kann die JDK-Version am besten angegeben werden?
Für Java 8 und niedriger:
Weder
maven.compiler.source
/maven.compiler.target
Eigenschaften noch die Verwendung dermaven-compiler-plugin
ist besser. Es ändert nichts an den Fakten, da schließlich die beiden Möglichkeiten auf denselben Eigenschaften und demselben Mechanismus beruhen: dem Maven-Core-Compiler-Plugin.Wenn Sie im Compiler-Plugin keine anderen Eigenschaften oder Verhaltensweisen als Java-Versionen angeben müssen, ist die Verwendung dieser Methode sinnvoller, da dies prägnanter ist:
Aus Java 9:
Das
release
Argument (dritter Punkt) ist eine Möglichkeit, stark zu überlegen, ob Sie dieselbe Version für dassource
und das verwenden möchtentarget
.quelle
Ich hatte das gleiche Problem im Eclipse Neon Simple Maven Java-Projekt
Aber ich füge unten Details in der Datei pom.xml hinzu
Klicken Sie nach der rechten Maustaste auf Projekt> Maven> Projekt aktualisieren (aktiviertes Update erzwingen).
Es ist meine Lösung, Fehler im Projekt anzuzeigen
Hoffe es wird hilfreich sein
Thansk
quelle
quelle