2016-02-06 44 views
6

Mam projektu JHipster w którym dodałem zależność dla Lombok w build.gradle:Gradle budować nie na Lombok adnotacjami klas

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

I mam plugin dla IntelliJ Lombok zgasł. Włączyłem przetwarzanie adnotacji w IntelliJ, mogę budować bez błędów z IDI IntelliJ, ale gdy próbuję budować z wiersza poleceń, otrzymuję błędy kompilacji. Wygląda na to, że Gradle nie przetwarza adnotacji i nie może znaleźć deklaracji typu getter/setter i log. Projekt działa również bez żadnych błędów.

Linia komend:

./gradlew build 

Błędy:

/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 

Błąd:

/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 

usługi Klasa:

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); 
    } 
} 

Entity Class:

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; 

} 

Próbowałem dowiedzieć się tego przez kilka godzin, ale całkowicie zablokowany. Każda pomoc będzie doceniona.

+0

Czy możesz opublikować swoją klasę SecurityUtils? – Ethan

+0

Czy uwzględniłeś również zależność od SLF4J? –

+1

Dziękuję Ethanowi i Roel za twoje odpowiedzi. Dodałem więcej szczegółów, aby pokazać, że dostaję błędy kompilacji na temat pobierających/ustawiających i deklaracji logów. Nie sądzę, że jest to specyficzne dla klasy SecureUtils. Mam grupę kompilacji: 'org.springframework.boot', nazwa: 'spring-boot-starter-logging' udostępnia SLF4J. –

Odpowiedz

11

Musisz podać lombok jako procesor adnotacji. Aby to zrobić, musisz dodać do projektu build.gradle w projekcie Jhipster.

apply plugin: 'net.ltgt.apt' 

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

    /** ... */ 
} 

Jhipster wykorzystuje net.ltgt.gradle:gradle-apt-plugin do przetwarzania opisów.

Dla konfiguracji IntelliJ należy sprawdzić ustawienia,, Enable annotation Processing.

Więcej informacji: Project Lombok - android instructions

+1

rozwiązał problem – WeMakeSoftware