Как указать версию компилятора Java в pom.xml-файл?
Я написал код maven на netbeans, который имеет примерно более 2000 строк. Когда я компилирую его на netbeans, все в порядке, но если я хочу запустить его в командной строке, я получу эти ошибки:
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
Я пытался использовать Java 1.3.1, ошибки компилятора, но я получил больше ошибок. Я нашел из других сообщений, что я должен изменить pom.xml, но я не знаю как. Вот мой пом.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>
было бы здорово, если вы можете помочь мне.
4 ответа:
<project> [...] <build> [...] <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>(whatever version is current)</version> <configuration> <!-- or whatever version you use --> <source>1.7</source> <target>1.7</target> </configuration> </plugin> </plugins> [...] </build> [...] </project>
см. страницу конфигурации для плагина компилятора maven:
http://maven.apache.org/plugins/maven-compiler-plugin/examples/set-compiler-source-and-target.html
О, и: не используйте Java 1.3.x, текущие версии Java 1.7.x или 1.8.x
maven-compiler-plugin он уже присутствует в зависимости иерархии плагинов в pom.XML. Проверьте в эффективном пом.
для краткости вы можете использовать такие свойства:
<properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties>
Я использую maven 3.2.5
я столкнулся с той же проблемой в eclipse neon simple maven java project
но я добавляю ниже детали внутри pom.xml-файл
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.6.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build>
после щелчка правой кнопкой мыши по проекту > maven > обновить проект (проверено обновление силы)
его разрешить мне, чтобы отобразить сообщение об ошибке на проекте
надеюсь, что это будет полезно
Thansk
как правило, вы не хотите ценить только
source
версия (javac -source 1.8
например), но вы хотите значение какsource
иtarget
версия (javac -source 1.8 -target 1.8
например).
Обратите внимание, что из Java 9 у вас есть способ передать как информацию, так и более надежный способ для совместимости с кросс-компиляцией (javac -release 9
).
Maven, который обертываетjavac
команда предоставляет несколько способов передать все эти стандартные параметры JVM.Как указать JDK версия?
используя
maven-compiler-plugin
илиmaven.compiler.source
/maven.compiler.target
свойства, чтобы указатьsource
иtarget
эквивалентны.<plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins>
и
<properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties>
эквивалентны в соответствии с Maven документация плагина компилятора так как
<source>
и<target>
элементы в конфигурации компилятора используют свойстваmaven.compiler.source
иmaven.compiler.target
если они определены.The