情報科学屋さんを目指す人のメモ

方法・手順・解説を書き残すブログ。私と同じことを繰り返さずに済むように。

Maven実行時の「エラー: ダイヤモンド演算子は-source 1.5でサポートされていません」エラー

Java (37) Maven (19)

Java SE 7 を対象に実装したプログラムをEclipse+Mavenでビルドしようとしたらこんなエラーが出たので、対策をメモ。

エラー

エラー: ダイヤモンド演算子は-source 1.5でサポートされていません

原因

Eclipseを使ってMavenプロジェクトにConvertした際に、「.classpath」ふぁいるの記述が変更されてしまっていたようです。

<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>

まずこれを元に戻してあげることで、Eclipseの文法エラー表示が解決しました。

<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.7.0_11"/>

しかし、これでもMavenでのビルドを実行すると、同じエラーが出ます。

この「-source 1.5」というのはコンパイラのオプションのことを指しているので、Mavenの「maven-compiler-plugin」の設定を変更する必要があるようです。

<project>
  [...]
  <build>
    [...]
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.0</version>
        <configuration>
          <source>1.4</source>
          <target>1.4</target>
        </configuration>
      </plugin>
    </plugins>
    [...]
  </build>
  [...]
</project>

Maven Compiler plugin - Setting the -source and -target of the Java Compiler

pom.xmlに、この要素を追加することで、ビルドできるようになりました。

おまけ

このpom.xmlで親子関係を飛ばしてしまうと、こんなエラーが出るようです。

Malformed POM X:\.....\pom.xml: Unrecognised tag: 'plugins'

今回は「build」タグを飛ばしてしまい、予想外の「plugins」が来た、というエラーでした。

また、忘れてしまったばあいはこんなエラーが出ます。

'build.plugins.plugin.artifactId' is missing. @ line 15, column 13

こちらは分かりやすいですね。

コメント(0)

新しいコメントを投稿