2015-10-29 27 views
9

Đối với một dự án mà tôi hiện đang làm việc, IntelliJ đã cho tôi lỗi biên dịch Error:java: javacTask: source release 8 requires target release 1.8. Tôi đã đi vào Settings> Build, Execution, Deployment> Compiler> Java và thấy rằng phiên bản bytecode đích cho một trong các mô-đun của tôi đã được đặt là 1.5, vì vậy tôi đã thay đổi nó thành 1.8, biên dịch và nó hoạt động. Nhưng rồi ngày hôm sau, tôi gặp lỗi tương tự. Tôi đã đi vào cài đặt và bytecode mục tiêu cho rằng một mô-đun đã trở lại ở mức 1,5. Tôi đã thay đổi nó thành 1.8 và nó được biên dịch/chạy tốt. Điều này đã xảy ra nhiều lần và tôi thất vọng bởi số lần tôi phải đi vào cài đặt để thay đổi phiên bản bytecode đích theo cách thủ công.IntelliJ nhắm mục tiêu bytecode hoàn nguyên

Tại sao phiên bản bytecode mục tiêu tiếp tục hoàn nguyên? Tôi không có 1,5 quy định trong pom hoặc bất cứ nơi nào khác, vì vậy tôi bối rối là tại sao phiên bản bytecode tiếp tục nhận được thiết lập để 1.5.

+0

'baffled' chính xác là cảm xúc của tôi. –

Trả lời

6

Câu trả lời được chấp nhận là đúng theo nghĩa là bạn cần phải xác định các phiên bản nguồn và mục tiêu trong tập tin pom.xml của bạn, nhưng kể từ khi maven-compiler-plugin là được thêm theo mặc định, cách dễ dàng hơn để thực hiện việc đó là đặt các thuộc tính sau:

<properties> 
    <maven.compiler.source>1.8</maven.compiler.source> 
    <maven.compiler.target>1.8</maven.compiler.target> 
</properties> 
+1

Đây phải là câu trả lời được chấp nhận – RedShift

8

Bạn cần dd này để POM của bạn:

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.3</version> 
      <configuration> 
       <source>1.8</source> 
       <target>1.8</target> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 
Các vấn đề liên quan