2016-02-06 19 views
6

tôi có một dự án JHipster trong đó tôi đã thêm sự phụ thuộc cho Lombok ở build.gradle:Gradle xây dựng không thành công trên lớp Lombok chú thích

compile group: 'org.projectlombok', name: 'lombok', version: lombok_version 

Và tôi có plugin Lombok bị đình trệ cho IntelliJ. Tôi đã bật chế biến chú thích trong IntelliJ, tôi có thể xây dựng mà không có lỗi từ IDE IntelliJ, nhưng khi tôi cố gắng xây dựng từ dòng lệnh, tôi gặp lỗi xây dựng. Dường như Gradle không xử lý các chú thích và không thể tìm thấy các khai báo getter/setter và log. Dự án cũng chạy mà không có bất kỳ loại lỗi nào.

Command Line:

./gradlew build 

Lỗi:

/Users/.../source/v4.0/src/main/java/com/.../service/MyService.java:145: error: cannot find symbol 
     log.info("Security Context: " + SecurityUtils.getCurrentUserLogin()); 
     ^
    symbol: variable log 
    location: class MyService 

Lỗi:

/Users/.../source/v4.0/src/main/java/com/.../service/MyService.java:105: error: cannot find symbol 
     myClass.setDescription(description); 
         ^
    symbol: method setDescription(String) 
    location: variable myClass of type MyClass 

Service Class:

import lombok.extern.slf4j.Slf4j; 
import org.springframework.stereotype.Service; 

@Service 
@Slf4j 
public class MyService {  
    public void someMethod(){ 
     log.debug("Security Context: " + SecurityUtils.getCurrentUserLogin()); 
     MyClass myCLass = new MyClass(); 
     myClass.setDescription(description); 
    } 
} 

Lớp thực thể:

import lombok.Getter; 
import lombok.NoArgsConstructor; 
import lombok.Setter; 
import javax.persistence.Entity; 
import javax.persistence.Table; 

@Entity 
@Table(name="t_juror_file_update") 
@Getter 
@Setter 
@NoArgsConstructor 
public class MyClass { 

    private String description; 

} 

Tôi đã cố gắng tìm ra điều này trong nhiều giờ, nhưng hoàn toàn bị kẹt. Bất kỳ trợ giúp sẽ được đánh giá cao.

+0

Bạn có thể đăng lớp SecurityUtils của mình không? – Ethan

+0

Bạn có bao gồm phụ thuộc vào SLF4J không? –

+1

Cảm ơn Ethan và Roel về câu trả lời của bạn. Tôi đã thêm nhiều chi tiết hơn để hiển thị tôi nhận được lỗi biên dịch trên getters/setters và khai báo nhật ký. Tôi không nghĩ rằng nó là cụ thể cho lớp SecureUtils. Tôi có một nhóm biên dịch: 'org.springframework.boot', tên: 'spring-boot-starter-logging' đang cung cấp SLF4J. –

Trả lời

11

Bạn sẽ cần chỉ định lombok làm bộ xử lý chú thích. Để thực hiện việc này, bạn sẽ cần thêm sau vào build.gradle trong dự án Jhipster.

apply plugin: 'net.ltgt.apt' 

dependencies {  
    provided "org.projectlombok:lombok:$lombokVersion" 
    apt "org.projectlombok:lombok:$lombokVersion" 

    /** ... */ 
} 

Jhipster sử dụng net.ltgt.gradle:gradle-apt-plugin để xử lý chú thích.

Để kiểm tra IntelliJ thiết lập, Enable annotation Processing.

Thông tin khác: Project Lombok - android instructions

+1

đã giải quyết được sự cố – WeMakeSoftware

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