web-dev-qa-db-ja.com

Mavenビルドコンパイルエラー:プロジェクトMavenで目標org.Apache.maven.plugins:maven-compiler-plugin:3.1:compile(default-compile)を実行できませんでした

GitリポジトリからEclipseにフォークおよびクローンされたMavenプロジェクトがあります。 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がセットアップされているプロジェクトのビルドパスの詳細です。 build path

コンパイルのセットアップ:

Compliance level

何回プロジェクトをビルドしても、同じエラーが発生します。プロジェクトをクリーンアップし、Eclipseから更新した後も役に立ちません。ガイドしてください。

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();

            }
        }
    });
}
13
roger_that

これを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>
26
user7639880

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のみでコンパイルされるかどうかを確認します。

9
Mark Bramnik

私は同じ問題を抱えていて、これを変更しました

<configuration>
    <source>1.7</source>
    <target>1.7</target>
 </configuration>

ここで1.7は私のJDKバージョンです。それは解決されました。

2
chamzz.dot

私の場合、これは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
2
snovelli

バディ、
これがすべて最新である場合でも、この問題が発生しています。
Eclipseから実行する代わりに、このコマンドをターミナルから直接実行してみてください。
$ mvn clean install

そして次のことを確認してください:

  • mavenはシステムパスにあります
  • すべてのMaven依存関係は、 `.m2/repository`で利用可能です
  • Javaはシステムパスにあります


2
Nityanarayan44

Javaバージョンの不一致が原因で来ていたので、それを修正し、warファイルをビルドできます。

    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
1

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>

そして、Mavenが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"
1
vsingh

mvn compileをプロジェクトからコンパイルできるが、Eclipseからではなくターミナルからプロジェクトをコンパイルできる場合は、[ウィンドウ]> [設定]> [インストール済みJRE]を選択します。 MavenをコンパイルするにはJDKが必要なので、追加する必要があります。

Installed JREs

1
sql_dummy

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. <plugin></plugin>の下のpom.xmlを更新します。

  2. プロジェクトを更新します。

  3. 次に、Mavenをクリーニングして、Mavenをインストールします。

1

以下のpom.xml構成は、ビルドを成功させ、プロジェクトのビルドパスJREシステムライブラリがJava8を指すようにします。

org.Apache.maven.pluginsmaven-compiler-plugin3.7.0 1.81.8

1

POMが保存されているファイルの場所に移動し、cmdを開きます。次に、「mvn --v」と入力して、提供されているMavenバージョンとJavaランタイムを確認します。ランタイム属性を確認し、「C:\ Program Files\Java\jre1.8.0_191」またはJREに近い場合は、環境変数に移動して、「C:」という値を持つ「Java_HOME」という新しい「システム変数」を追加します。\Program Files\Java\jdk1.8.0_191 "。

Cmdを再度開き、プロジェクトを「クリーンインストール」します。

0
Rohit Bhatnagar

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>

次のようにコードを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>
0
user8961607