2012-05-14 35 views
21

Sáng nay Maven bắt đầu phàn nàn với lỗi này:Tại sao Maven tạo lỗi này: "... không được hỗ trợ trong nguồn 1,5"?

error: multi-catch statement is not supported in -source 1.5

Nhưng kỳ lạ, tôi đang sử dụng JDK 7 và mã này đã được xây dựng tốt cho tuần. Tôi chỉ sử dụng m2e với một POM mặc định không có phiên bản trình biên dịch được chỉ định.

Dưới đây là thông tin phiên bản Maven tôi:

Apache Maven 3.0.2 (r1056850; 2011-01-08 19:58:10-0500) 
Java version: 1.7.0_03, vendor: Oracle Corporation 
Java home: C:\SDKs\Java\jdk1.7.0_03\jre 
Default locale: en_US, platform encoding: Cp1252 
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows" 

tôi có thể khắc phục nó bằng cách sử dụng trình biên dịch plugin Maven như vậy:

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.4</version> 
      <configuration> 
       <source>1.7</source> 
       <target>1.7</target> 
      </configuration> 
     </plugin> 

Tuy nhiên, tôi muốn hiểu tại sao Maven sẽ bất ngờ bắt đầu hoạt động sai và yêu cầu sử dụng plugin trình biên dịch.

+2

Bạn luôn sử dụng trình biên dịch-trình biên dịch maven. Đây chỉ là cấu hình nó. – bmargulies

+0

Ah, cảm ơn vì sự thấu hiểu. – HolySamosa

Trả lời

12

Rất có thể đây là vấn đề với môi trường của bạn, chứ không phải là maven (tức là biến môi trường JAVA_HOME của bạn đã thay đổi). Cần lưu ý rằng plugin trình biên dịch là bắt buộc. Bằng cách bao gồm phần trình biên dịch này trong pom của bạn, bạn đảm bảo rằng mã của bạn được biên dịch với trình biên dịch chính xác, bất kể cài đặt môi trường của bạn.

Các vấn đề liên quan