Apache maven3.2.3を使用してJavaプロジェクトをコンパイルしています。
コマンドラインを使用してコンパイルを起動すると
mvn clean compile
その後、それは完全に動作します。
しかし、Eclipse(LUNA)からmavenビルドを実行すると、常に以下のエラーで失敗します。
[ERROR] Failed to execute goal org.Apache.maven.plugins:maven-compiler-plugin:2.5.1:compile (default-compile) on project MSDPEx: Execution default-compile of goal org.Apache.maven.plugins:maven-compiler-plugin:2.5.1:compile failed: An API incompatibility was encountered while executing org.Apache.maven.plugins:maven-compiler-plugin:2.5.1:compile: Java.lang.UnsupportedClassVersionError: com/Sun/tools/javac/Main : Unsupported major.minor version 52.0
[ERROR] -----------------------------------------------------
[ERROR] realm = plugin>org.Apache.maven.plugins:maven-compiler-plugin:2.5.1
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR] urls[0] = file:/home/rvnath/.m2/repository/org/Apache/maven/plugins/maven-compiler-plugin/2.5.1/maven-compiler-plugin-2.5.1.jar
[ERROR] urls[1] = file:/home/rvnath/.m2/repository/org/codehaus/plexus/plexus-utils/3.0/plexus-utils-3.0.jar
[ERROR] urls[2] = file:/home/rvnath/.m2/repository/org/codehaus/plexus/plexus-compiler-api/1.9.1/plexus-compiler-api-1.9.1.jar
[ERROR] urls[3] = file:/home/rvnath/.m2/repository/org/codehaus/plexus/plexus-compiler-manager/1.9.1/plexus-compiler-manager-1.9.1.jar
[ERROR] urls[4] = file:/home/rvnath/.m2/repository/org/codehaus/plexus/plexus-compiler-javac/1.9.1/plexus-compiler-javac-1.9.1.jar
[ERROR] urls[5] = file:/home/rvnath/.m2/repository/junit/junit/3.8.1/junit-3.8.1.jar
[ERROR] Number of foreign imports: 1
[ERROR] import: Entry[import from realm ClassRealm[maven.api, parent: null]]
[ERROR]
[ERROR] -----------------------------------------------------
[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.
EclipseとMavenの構成に問題はありますか?もしそうなら、どうすればこれを解決できますか?
それが役立つ場合、私の環境は以下のとおりです。
OS: Ubuntu 14.10
JDK: Java version "1.7.0_75"
OpenJDK Runtime Environment (IcedTea 2.5.4) (7u75-2.5.4-1~utopic1)
OpenJDK 64-Bit Server VM (build 24.75-b04, mixed mode)
Eclipse installed JRE's: Java-7-openjdk-AMD64 (default)
最初。 Mavenを使用している場合、真実はEclipseではなくpomファイルにあります。したがって、EclipseではなくMavenで問題を修正する必要があります。
まず、maven-compiler-pluginをバージョン3.2または3.3に更新する必要があります。次のように構成します。
<project>
[...]
<build>
[...]
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
[...]
</build>
[...]
</project>
Eclipse内からではなく、コマンドラインからビルドを確認する必要があります。さらに、source
、target
オプションとJDKの使用の違いに注意する必要があります。
この問題は、過去2〜3週間私を悩ませていました。
この種の質問は何度か聞かれ、多くの答えがあります。しかし、私の答えも投稿するので、このような状況にある人は恩恵を受けるかもしれません。
最後に、私のシステムにもjdk1.8がインストールされており、Eclipseが1.7を使用しているのに対し、mavenのcmdline起動はこのバージョンを使用していることがわかりました。だから、私は次のことをしました:
これで、プロジェクトをコンパイルできるようになりました。正確な理由はわかりませんが、jdk1.7でコンパイルに失敗する理由はわかりません。
上記は私にはうまくいきませんでしたが、これはうまくいきました。あなたに追加pom.xml
<project ....>
<properties>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
</project>
ここで、1.7は使用するJavaバージョンです。これにより、Mavenコンパイラの設定が上書きされるため、ここからデバッグすることをお勧めします。