2012-10-10 42 views
10

Tôi đang sử dụng JSR 269 như một cách để phân tích mã trong khi biên dịch và không thực hiện được nếu cần. Tôi đang gặp sự cố khi hiển thị đầu ra của bộ xử lý chú thích của mình trong maven (Ant hiển thị đầu ra) Tôi đang sử dụng javax.annotation.processing.Messager để hiển thị cảnh báo và lỗi, nhưng trong maven tôi không thấy kết quả đầu ra của nó . (Tôi biết nó chạy mặc dù, bởi vì nó tạo ra mã như nó nên). Bất kỳ ý tưởng nào?Đầu ra bộ xử lý chú thích trong maven

+0

Thông báo đầu ra của bộ xử lý như thế nào? Làm thế nào để bạn gọi nó? –

+0

Đầu ra có hiển thị nếu bạn gọi maven với tham số '-X' không? –

+0

@matt b Tôi đang sử dụng javax.annotation.processing.Messager để hiển thị cảnh báo: '_messager = processingEnv.getMessager();' @Jorn: Tôi không sử dụng tham số -X, bộ xử lý được liệt kê là nhà cung cấp dịch vụ – iGili

Trả lời

12

Tôi nghĩ rằng bạn đang chạy vào một lỗi Maven hoặc tốt hơn một lỗi trong trình biên dịch plugin - MCOMPILER-66. Khi nói đến chú thích xử lý trình biên dịch plugin có một số vấn đề, ví dụ như cũng MCOMPILER-62. Thực sự là tùy chọn tốt nhất imo là vô hiệu hóa xử lý chú thích cho plugin trình biên dịch và sử dụng maven-processor-plugin. Trong số blog post này, bạn có thể xem cách sử dụng nó. Có vẻ như sau:

<plugins> 
    <plugin> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <configuration> 
      <source>1.6</source> 
      <target>1.6</target> 
      <compilerArgument>-proc:none</compilerArgument> 
     </configuration> 
    </plugin> 
    <plugin> 
     <groupId>org.bsc.maven</groupId> 
     <artifactId>maven-processor-plugin</artifactId> 
     <version>1.3.7</version> 
     <executions> 
      <execution> 
       <id>process</id> 
       <goals> 
        <goal>process</goal> 
       </goals> 
       <phase>process-sources</phase> 
      </execution> 
     </executions> 
     <dependencies> 
      <dependency> 
       <groupId>org.hibernate</groupId> 
       <artifactId>hibernate-jpamodelgen</artifactId> 
       <version>1.1.0.Final</version> 
       <scope>compile</scope> 
      </dependency> 
     </dependencies> 
    </plugin> 

Cũng lưu ý cách phụ thuộc bộ xử lý chú thích chỉ được nhúng vào plugin một cách độc đáo.

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