Запустить Maven архетипа "быстрый старт" в Java 10? - PullRequest
0 голосов
/ 04 мая 2018

Когда я создаю новый проект IntelliJ 2018.1 из архетипа Maven maven-archetype-quickstart версии 1.3 с использованием Oracle 10.0.1 на macOS Sierra, я получаю эту ошибку при выполнении Maven install.

[ОШИБКА] Не удалось выполнить цель org.apache.maven.plugins: maven-surefire-plugin: 2.20.1: test (default-test) в проекте h2e2: Выполнить default-test цели org.apache.maven. plugins: maven-surefire-plugin: 2.20.1: тест не пройден .: NullPointerException -> [Help 1]

Я запускаю это сразу после создания нового проекта. Я пишу нет код. Я могу запустить строку по умолчанию:

    public static void main( String[] args ) { System.out.println( "Hello World!" ); }

… выбрав Run 'App.main()' из контекстного меню, щелкнувшего в редакторе кода. Это работает, но Maven install терпит неудачу.

Выполнение clean и install на панели Maven IntelliJ не решает проблему.

enter image description here

Если я переключу IntelliJ File> Project Structure> Project> Project SDK> с 10.0.1 на 1.8.0_171 (и установите Project language level на 8 - Lambdas, type annotations etc.), тогда Maven install завершится успешно .

[INFO] -------------------------------------------- ----------------------------

[INFO] УСПЕХ СТРОИТЕЛЬСТВА

[INFO] -------------------------------------------- ----------------------------

Если я верну этот параметр в Java 10, Maven install снова завершится с ошибкой с той же ошибкой.

Я использую внешнюю версию Maven 3.5.3, а не старую версию IntelliJ, без какой-либо конкретной причины.

Мои старые проекты, основанные на Java 8, не имеют проблем. Моя единственная проблема - пытаться создавать новые проекты quickstart на основе Maven с использованием Java 10.

Ответы [ 2 ]

0 голосов
/ 20 июля 2018

Ответ от Мартена является правильным и решающим.

Установить источник / цель компилятора на 10

В дополнение к этому решению Ответчика, обновляющему версию maven-surefire-plugin, для запуска этого проекта Maven "Quickstart" на основе архетипов в Java 10 вам потребуется изменить файл POM на , что означает, что Java 10 будет использоваться компилятор .

Изменить это:

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
</properties>

для замены пары 1.7 вхождений на 10:

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>10</maven.compiler.source>
    <maven.compiler.target>10</maven.compiler.target>
</properties>
0 голосов
/ 04 мая 2018

Более поздняя версия maven-surefire-plugin

Похоже, что архетип еще не обновлен для Java 10.

Согласно этому сообщению в блоге: http://joshlong.com/jl/blogPost/java-10.html, вы можете сделать следующее, чтобы запустить его ...

.... Я хочу использовать Java 10, поэтому я открыл файл pom.xml и изменил значение свойства java.version на 10. Безошибочный Maven плагин сломал сборку рядом; он жаловался на то, что не может разобрать версию JDK. Я переопределил версию, переопределив свойство для версии плагина: 2.21.0.

Важной частью здесь является, я думаю, обновление до более высокой версии surefire, как упоминалось в комментариях. По состоянию на 2018-10, текущая версия равна 2.22.1.

<plugin>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.22.1</version>
</plugin>
...