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>
  1. Обновите файл pom.xml в разделе <plugin></plugin>.

  2. Обнови свой проект.

  3. Затем очистите 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. Так что мои догадки были верны в моем случае.

Может быть, это тоже для других, так что просто попробуйте это.