2017-12-01 37 views
-2

これはtry-with-resources.Iを持つMavenプロジェクトの私の簡単なコードです.EclipseをIDEとして使用しています。Mavenビルドエラー - try-with-resourcesは-sourceでサポートされていません1.5

public class Hello { 

    public static void main(String[] args) { 

     try(FileInputStream fi = new FileInputStream("ANC")){ 

     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
} 

clean package -Uを使用して作成すると、次のエラーが表示されます。

Hello.java:[11,20] try-with-resources is not supported in -source 1.5 
    (use -source 7 or higher to enable try-with-resources). 

しかし、私は私のJavaコンパイラは、Java 1.8に設定する必要があり、JaveでパスJREシステムライブラリを構築するには、このエラーが解決しないもJDK 1.8.Stillです。

これは私のPOMファイル(マイナスJUnitの依存性)

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.commonutil</groupId> 
    <artifactId>PropertyFile</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <name>PropertyFile</name> 
    <url>http://maven.apache.org</url> 

    <properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 
</project> 

です。注:のpom.xmlでのターゲットとソースを設定すると、いずれかの助けにはなりませんでした。 これに関するお手伝いがあります。ありがとうございます。

+0

@Oleg pom.xmlでソースとターゲットを設定しようとしました。結果を変更しませんでした。 –

+0

IDEがpom.xmlと同期していないことに注意してください。これにより、mavenを使用してプロジェクトをビルドする場合、IDE固有の変更はmavenには適用されません。 –

+0

あなたが何か間違っていた、これは解決策です。 – Oleg

答えて

4

Javaソースのバージョンを指定する必要があるため、コンパイラプラグインで正しいフラグ値が使用されます。例:

<properties> 
    <maven.compiler.source>1.8</maven.compiler.source> 
</properties> 
+3

忘れないでください。 ' 1.8' .. – khmarbaise

+0

上記の情報に加えて、2つのmaven-compiler-pluginプロパティは、javac -sourceと-targetフラグにマップされます。 javac -help -source 指定されたリリースとのソース互換性を提供します -target 特定のVMバージョン用のクラスファイルを生成します –