Как указать версию компилятора 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> list = new ArrayList<ArrayList>(); generics are not supported in -source 1.3 (use -source 5 or higher to enable generics) HashSet resid_List = new HashSet(Arrays.asList(resid_val)); generics are not supported in -source 1.3 (use -source 5 or higher to enable generics) List ind_ovlpList = new ArrayList(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 { annotations are not supported in -source 1.3 (use -source 5 or higher to enable annotations) @Override 

Я пытался использовать Java 1.3.1, compiler errors , но у меня появилось больше ошибок. Я нашел из других сообщений, что мне нужно изменить pom.xml, но я не знаю, как это сделать. Вот мой pom.xml

  4.0.0 com.mycompany mavenmain 1.0-SNAPSHOT jar mavenmain http://maven.apache.org  UTF-8    junit junit 3.8.1 test   gov.nist.math jama 1.0.2    

Было бы здорово, если бы вы могли мне помочь.

  [...]  [...]   org.apache.maven.plugins maven-compiler-plugin (whatever version is current)   1.7 1.7    [...]  [...]  

См. Страницу конфигурации для плагина компилятора 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. Проверьте эффективный POM.

Короче говоря, вы можете использовать такие свойства:

  1.8 1.8  

Я использую maven 3.2.5

Я столкнулся с такой же проблемой в проекте eclipse neon simple maven java

Но я добавляю ниже детали внутри файла pom.xml

     org.apache.maven.plugins maven-compiler-plugin 3.6.1  1.8 1.8     

После щелчка правой кнопкой мыши по проекту> maven> update project (проверено силовое обновление)

Он разрешает мне отображать ошибку в проекте

Надеюсь, это поможет

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 эквивалентно.

   maven-compiler-plugin  1.8 1.8    

а также

  1.8 1.8  

эквивалентны в соответствии с документацией Maven плагина компилятора, поскольку элементы и в конфигурации компилятора используют свойства maven.compiler.source и maven.compiler.target если они определены.

источник

Аргумент -source для компилятора Java.
Значение по умолчанию: 1.6 .
Свойство пользователя: maven.compiler.source .

цель

Аргумент -target для компилятора Java.
Значение по умолчанию: 1.6 .
Свойство пользователя: maven.compiler.target .

О значениях по умолчанию для source и target обратите внимание на то, что с 3.8.0 компилятора maven значения по умолчанию изменились с 1.5 до 1.6 .

Из maven-compiler-plugin 3.6 у вас есть новый способ указать версию Java

Вы можете использовать аргумент release :

  org.apache.maven.plugins maven-compiler-plugin 3.8.0  9   

Вы также можете объявить только пользовательское свойство maven.compiler.release :

  9  

Но в это время последней будет недостаточно, поскольку используемая вами версия по умолчанию maven-compiler-plugin не полагается на достаточно недавнюю версию.

Аргумент release Maven передает release : новый стандарт JVM, который мы могли бы передать из Java 9:

Компиляция с общедоступным, поддерживаемым и документированным API для конкретной версии VM.

Этот способ обеспечивает стандартный способ указать ту же версию для source , target и параметров bootstrap JVM.
Обратите внимание, что указание bootstrap является хорошей практикой для перекрестных компиляций, и это не повредит, если вы не сделаете перекрестные компиляции.

Каков наилучший способ указать версию JDK?

Для Java 8 и ниже:

maven.compiler.source maven.compiler.target свойства maven.compiler.source / maven.compiler.target или использовать maven-compiler-plugin . Он ничего не меняет в фактах, так как в конечном итоге два способа полагаются на одни и те же свойства и один и тот же механизм: плагин maven core compiler.

Ну, если вам не нужно указывать другие свойства или поведение, чем версии Java в плагине компилятора, использование этого способа имеет больше смысла, поскольку это более кратким:

  1.8 1.8  

Из Java 9:

Аргумент release (третья точка) – это способ, который следует рассмотреть, если вы хотите использовать ту же версию для source и target .

  • Чтение файла свойств из файла POM в Maven
  • Есть ли вообще исключить артефакты, унаследованные от родительского ПОМ?
  • отказоустойчивый плагин не будет работать в одном проекте, но будет работать на другом - почему?
  • Удаление или удаление файлов ресурсов из целевого каталога с помощью файла pom
  • Укажите JDK для Maven для использования
  • Interesting Posts

    Как передать форму, объект или данные во вторую форму

    Java перечисляет элементы с пробелами?

    Есть ли библиотека Java, которая может «отличать» два объекта?

    Почему URE отказывается от восстановления рейда и «делает RAID 5 непригодным для использования»

    System.MissingMethodException: метод не найден?

    Сложность предикатов ISO Prolog

    Почему iostream :: eof внутри условия цикла считается неправильным?

    Netbeans, как установить аргументы командной строки в Java

    Установление соединения SSH между машинами за брандмауэрами

    jQuery .scrollTop (); + анимация

    Ubuntu 17.04 с системным разрешением DNS-запросы случайным образом выходят из строя

    Как динамически удалять элементы из списка ListView при нажатии кнопки?

    Заставить Chrome игнорировать «слабый эфемерный открытый ключ Диффи-Хеллмана»

    Ограничение доступа к программам через Интернет

    Поисковая система Google «Я чувствую себя счастливой» Google на Chromium

    Давайте будем гением компьютера.