2011-06-28 62 views
14

Khi chạy mvn install về dự án của tôi, tôi nhìn thấy nó thất bại do các lỗi sau đây:Maven Install: "Chú thích không được hỗ trợ trong -source 1.3"

C:\Repositories\blah\src\test\java\com\xxx\qm\testrunner\test\ATest.java:[11,5] annotations are not supported in -source 1.3 
(use -source 5 or higher to enable annotations) 
    @Test 

C:\Repositories\blah\src\test\java\com\xxx\qm\common\test\BTest.java:[11,5] annotations are not supported in -source 1.3 
(use -source 5 or higher to enable annotations) 
    @Test 

phụ thuộc Maven của tôi bao gồm jUnit 4.8, tuy nhiên và không có tham chiếu đến 1.3 bất kỳ thứ gì.

Điều gì sẽ gây ra các lỗi này? Vui lòng thông báo cho

Trả lời

23

Bạn cần chỉ định phiên bản nguồn của dự án maven của mình thông qua việc sử dụng trình biên dịch maven-plugin. Thêm phần sau vào phần tử xây dựng pom của bạn và đặt mức nguồn và mục tiêu java thích hợp.

<build> 
    <defaultGoal>install</defaultGoal> 
    <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <configuration> 
        <source>1.6</source> 
        <target>1.6</target> 
       </configuration> 
      </plugin> 
     </plugins> 
</build> 

http://maven.apache.org/plugins/maven-compiler-plugin/

+0

Got it! Thank you very much – JAM

2

Bạn có nhiều khả năng sử dụng OpenJDK nơi cấp nguồn là 1,3 khi không được thiết lập một cách rõ ràng - như trái ngược với Oracle JDK nơi cấp nguồn là 1,5.

Vì hầu hết các dự án Java hiện đại nhắm mục tiêu mã mới hơn Java 5, bạn rất có thể cần thiết lập điều này. Cũng lưu ý rằng nếu bạn cần một mục tiêu thấp hơn nguồn (ví dụ để biên dịch với Java 6 nhưng triển khai sang Java 5), ​​bạn có thể làm điều này bằng cách sử dụng trình biên dịch Eclipse thay vì Javac.

4

Một phiên bản ngắn hơn:

<project> 
    <properties> 
     <maven.compiler.source>1.5</maven.compiler.source> 
     <maven.compiler.target>1.5</maven.compiler.target> 
    </properties> 
.... 
0

Thêm này trong pom của bạn

<build> 
     <pluginManagement> 
      <plugins> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-compiler-plugin</artifactId> 
        <version>3.0</version> 
         <configuration> 
          <!-- put your configurations here --> 
         </configuration> 
       </plugin> 
      </plugins> 
     </pluginManagement> 
    </build> 
1

Bu mặc định, maven cố gắng để biên dịch sử dụng Java phiên bản 1.3. Tôi hy vọng hầu hết trong số họ đạt được lỗi này vì thiếu nói maven rằng "Hey Maven, Dont sử dụng 1.3 và sử dụng" whatever_version_I_give"

này có thể được đề cập trong pom.xml như sau:

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

Trong ví dụ trên, tôi đã sử dụng 1,7. Hãy thay thế với bất cứ phiên bản nào bạn muốn.

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