Maven build Ошибка компиляции: не удалось выполнить цель org.apache.maven.plugins: maven-compiler-plugin: 3.1: скомпилировать (по умолчанию компиляция) в проекте Maven
У меня есть проект maven, раздвоенный и клонированный из репозитория git на мое затмение. Он построен на Java 8. Первое, что я делаю, это выполнить
mvn clean install
Но я получаю следующее сообщение об ошибке:
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ Maven ---
[INFO] Deleting /Users/vshukla/git/Prism/target
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ Maven ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /Users/vshukla/git/Prism/src/main/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ Maven ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
[INFO] Compiling 66 source files to /Users/vshukla/git/Prism/target/classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /Users/vshukla/git/Prism/src/main/java/PrenPost/scanUtility.java:[54,52] diamond operator is not supported in -source 1.5
(use -source 7 or higher to enable diamond operator)
[ERROR] /Users/vshukla/git/Prism/src/main/java/main/AppUtility.java:[87,86] diamond operator is not supported in -source 1.5
(use -source 7 or higher to enable diamond operator)
[ERROR] /Users/vshukla/git/Prism/src/main/java/PrenPost/ComparisionUtility.java:[58,52] diamond operator is not supported in -source 1.5
(use -source 7 or higher to enable diamond operator)
[INFO] 3 errors
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.266 s
[INFO] Finished at: 2017-03-01T12:11:27+05:30
[INFO] Final Memory: 13M/309M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project Maven: Compilation failure: Compilation failure:
[ERROR] /Users/vshukla/git/Prism/src/main/java/PrenPost/scanUtility.java:[54,52] diamond operator is not supported in -source 1.5
[ERROR] (use -source 7 or higher to enable diamond operator)
[ERROR] /Users/vshukla/git/Prism/src/main/java/main/AppUtility.java:[87,86] diamond operator is not supported in -source 1.5
[ERROR] (use -source 7 or higher to enable diamond operator)
[ERROR] /Users/vshukla/git/Prism/src/main/java/PrenPost/ComparisionUtility.java:[58,52] diamond operator is not supported in -source 1.5
[ERROR] (use -source 7 or higher to enable diamond operator)
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
Однако ниже приведена подробная информация о пути построения проекта, в котором четко установлена JRE-8:
![путь сборки]()
и настройка компиляции:
![Уровень соответствия]()
Независимо от того, сколько раз я создаю проект, я получаю ту же ошибку. Даже после очистки проекта и обновления его от затмения не помогает. Пожалуйста, направляйте.
UPDATE:
После добавления свойств для установки плагина maven-компилятора
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
получаем следующую ошибку:
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ Maven ---
[INFO] Deleting /Users/vshukla/git/Prism/target
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ Maven ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /Users/vshukla/git/Prism/src/main/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ Maven ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
[INFO] Compiling 66 source files to /Users/vshukla/git/Prism/target/classes
[INFO] -------------------------------------------------------------
[WARNING] COMPILATION WARNING :
[INFO] -------------------------------------------------------------
[WARNING] /Users/vshukla/git/Prism/src/main/java/main/MainUITabbed.java: /Users/vshukla/git/Prism/src/main/java/main/MainUITabbed.java uses or overrides a deprecated API.
[WARNING] /Users/vshukla/git/Prism/src/main/java/main/MainUITabbed.java: Recompile with -Xlint:deprecation for details.
[WARNING] /Users/vshukla/git/Prism/src/main/java/main/MainUITabbed.java: Some input files use unchecked or unsafe operations.
[WARNING] /Users/vshukla/git/Prism/src/main/java/main/MainUITabbed.java: Recompile with -Xlint:unchecked for details.
[INFO] 4 warnings
[INFO] -------------------------------------------------------------
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /Users/vshukla/git/Prism/src/main/java/main/MainUITabbed.java:[26,22] package com.apple.eawt does not exist
[ERROR] /Users/vshukla/git/Prism/src/main/java/main/MainUITabbed.java:[93,41] cannot find symbol
symbol: class Application
[ERROR] /Users/vshukla/git/Prism/src/main/java/main/MainUITabbed.java:[93,67] cannot find symbol
symbol: variable Application
[INFO] 3 errors
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.591 s
[INFO] Finished at: 2017-03-01T13:09:47+05:30
[INFO] Final Memory: 21M/347M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project Maven: Compilation failure: Compilation failure:
[ERROR] /Users/vshukla/git/Prism/src/main/java/main/MainUITabbed.java:[26,22] package com.apple.eawt does not exist
[ERROR] /Users/vshukla/git/Prism/src/main/java/main/MainUITabbed.java:[93,41] cannot find symbol
[ERROR] symbol: class Application
[ERROR] /Users/vshukla/git/Prism/src/main/java/main/MainUITabbed.java:[93,67] cannot find symbol
[ERROR] symbol: variable Application
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
И вот фрагмент кода, который дает ошибку компиляции из класса MainUITabbed:
import com.apple.eawt.Application;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Application application = Application.getApplication(); // line 93
ImageIcon imgicon = new ImageIcon(getClass().getResource(
"ICON.jpg"));
Image img = imgicon.getImage();
application.setDockIconImage(img);
MainUITabbed frame = new MainUITabbed();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
Ответы
Ответ 1
Добавление этого в POM исправило его для меня. Скорректируйте версию по мере необходимости
...
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
Ответ 2
Я не думаю, что IDE уместно здесь. В конце концов, вы работаете с Maven, а у Maven нет источника, который позволял бы компилировать операторы алмазов. Итак, я думаю, что вы должны настроить сам maven-compiler-plugin.
Вы можете прочитать об этом здесь. Но в целом попробуйте добавить следующие свойства:
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
и посмотрим, скомпилируется ли он сейчас только в Maven.
Ответ 3
В моем случае это было вызвано несовместимостью с OpenJDK 9 (который я еще не исследовал).
Если вам не нужен JDK 9, временная работа должна состоять в том, чтобы очистить его от вашего компьютера:
sudo apt-get remove --purge openjdk-9-jdk openjdk-9-jre
sudo apt-get remove --purge openjdk-9-jdk-headless openjdk-9-jre-headless
Ответ 4
У меня была та же проблема, и я изменил этот
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
здесь 1.7 моя версия JDK.it была решена.
Ответ 5
Дружище,
Если все это актуально, даже тогда у вас возникает эта проблема, тогда
попробуйте запустить эту команду с терминала напрямую, а не запускать из eclipse.
$ mvn clean install
и убедитесь в этом:
- maven находится в системном пути
- все зависимостей maven avaialble в `.m2/repository`
- java находится в системном пути
Ответ 6
потому что он запускался из-за несоответствия версии Java, поэтому я исправил его, и я могу создать файл war.hope, он поможет кому-то
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
Ответ 7
Делая это в файле pom.xml и после обновления проекта, проблема исчезла.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.4</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
-
Обновите файл pom.xml в разделе <plugin></plugin>
.
-
Обнови свой проект.
-
Затем очистите Maven и установите Maven.
Ответ 8
Приведенная ниже конфигурация pom.xml делает сборку успешной, и убедитесь, что системная библиотека проекта JRE должна указывать на Java8.
org.apache.maven.pluginsmaven-compiler-plugin3.7.0 1.81.8
Ответ 9
Решение JDK 9 и 10
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler.version}</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<debug>true</debug>
</configuration>
<dependencies>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
<version>6.2</version>
</dependency>
</dependencies>
</plugin>
и убедитесь, что ваш мавен указывает на JDK 10 или 9. mvn -v
Apache Maven 3.5.3 (3383c37e1f9e9b3bc3df5050c29c8aff9f295297; 2018-02-24T14:49:05-05:00)
Maven home: C:\devplay\apache-maven-3.5.3\bin\..
Java version: 10.0.1, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk-10.0.1
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
Ответ 10
В случае, если вы можете скомпилировать mvn compile
проект успешно из терминала, но не из Eclipse, откройте "Окно"> "Установки"> "Установленные JRE", убедитесь, что вы выбрали JRE, находящийся под JDK (проверьте пути 2 разных JRE на рис.), так как Maven нужен JDK для компиляции, вам нужно добавить его.
![Installed JREs]()
Ответ 11
Перейдите в расположение файла, где хранится POM, и откройте cmd. Затем введите "mvn --v", чтобы проверить предоставленную версию maven и среду выполнения Java. Проверьте атрибут времени выполнения и, если он "C:\Program Files\Java\jre1.8.0_191" или даже близко к JRE, перейдите к переменным среды и добавьте новую "системную переменную" с именем "JAVA_HOME" со значением "C:\Program Files\Java\jdk1.8.0_191 ".
Снова откройте cmd и затем "чистая установка" проекта.
Ответ 12
Убедитесь, что домашний путь Java правильный. в моем случае домашний путь Java неверен в файле pom.
<properties>
<java.home>/usr/java/jdk1.8.0_45/bin/javac</java.home>
</properties>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<verbose>true</verbose>
<fork>true</fork>
<executable>${java.home}</executable>
<compilerVersion>1.8</compilerVersion>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
Ответ 13
Вы должны добавить код в pom.xml, например:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
Ответ 14
Вы должны перейти по этой ссылке, это видео с YouTube, шаг за шагом объясняющее, как изменить путь к установленному jre (в моем случае это просто example-->) "C:\Program Files\Java\jdk1.8.0_151 "; следите за видео: язык видео: deutsh ^^, но вам не о чем беспокоиться. кликните сюда
Ответ 15
Я не могу запустить свою собственную сборку на других предложениях здесь. Я даже пробовал разные версии maven-compiler-plugin: 3.1, 3.7.0 и т.д.
Я заставил это работать, добавив это:
<testSourceDirectory>/src/test/java</testSourceDirectory>
Я попробовал этот подход, потому что кажется, что каталог /src/test/java считается классом java, поэтому он компилируется одновременно с /src/test/java. Так что мои догадки были верны в моем случае.
Может быть, это тоже для других, так что просто попробуйте это.