Когда я создаю новый проект IntelliJ 2018.1 из архетипа Maven maven-archetype-quickstart версии 1.3 с использованием Oracle 10.0.1 на macOS Sierra, я получаю эту ошибку при выполнении Maven install.
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.20.1:test (default-test) on project h2e2: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.20.1:test failed.: NullPointerException -> [Help 1]
Я запускаю это сразу после создания нового проекта. Пишу код нет. Я могу запустить строку по умолчанию:
public static void main( String[] args ) { System.out.println( "Hello World!" ); }
… Выбрав Run 'App.main()' из контекстного меню, открытого в редакторе кода. Это работает, но Maven install не работает.
Выполнение clean и install на панели Maven IntelliJ не решает проблему.
Если я переключаю 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] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
Если я верну этот параметр в Java 10, Maven install снова выйдет из строя с той же ошибкой.
Я использую внешний Maven 3.5.3, а не старую версию IntelliJ в комплекте, без особой причины.
Мои старые существующие проекты, основанные на Java 8, не имеют проблем. Моя единственная проблема - это попытка создать новые проекты quickstart на основе Maven с использованием Java 10.
@nullpointer Я ничего не знаю о surefire. Мне просто нужен очень простой проект на основе Maven без излишеств. Я думал, что это цель архетипа quickstart.
Не могли бы вы попробовать установить это свойство в вашем pom.xml: <maven-surefire-plugin.version>2.21.0</maven-surefire-plugin.version> Также какая у вас java-версия в pom? По умолчанию используется архетип 1,7 ... `<maven.compiler.source> 1,7 </maven.compiler.source>` `<maven.compiler.target> 1,7 </maven.compiler.target>` Maven также использует Java 10 JDK? Вы можете проверить это, запустив mvn -X clean
@Maarten Как запустить mvn -X clean в IntelliJ IDE? Можно ли передать аргументы, такие как -X, в элементы жизненного цикла, такие как clean, на панели Maven в IntelliJ?
Для Java 10 вам необходимо обновить плагин surefire / failsafe до версии 2.21.0 ....
@BasilBourque, я бы сделал эту командную строку. Это намного проще. Вы также можете создать конфигурацию запуска из шага «очистки» своего жизненного цикла и добавить -X в поле «Командная строка» в этой конфигурации запуска.




maven-surefire-pluginПохоже, архетип еще не обновлен для Java 10.
Согласно этому сообщению в блоге: http://joshlong.com/jl/blogPost/java-10.html, вы можете сделать следующее, чтобы запустить его ...
.... I want to use Java 10, though, so I opened the pom.xml file and changed the java.version property value to be 10. The Maven surefire plugin broke the build next; it was complaining about not being able to parse the version of the JDK. I overrode the version by redefining the property for the plugin's version: 2.21.0.
Важной частью здесь является обновление до более высокой версии surefire, как упоминалось в комментариях. По состоянию на 2018-10 год текущая версия - это 2.22.1.
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
</plugin>
Действительно, изменение верной версии на 2.21.0 позволяет успешно завершить выполнение элемента жизненного цикла Maven install.
Ответ Маартена правильный и важный.
10В дополнение к этому решению Answer, обновляющему версию 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>
Не работает ли он и с
2.21.0of surefire?