2016-02-06 13 views
6

Ho un progetto JHipster in cui ho aggiunto dipendenza per Lombok in build.gradle:Gradle compilazione fallisce sulle classi Lombok annotate

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

E ho il plugin Lombok in fase di stallo per IntelliJ. Ho attivato l'elaborazione delle annotazioni in IntelliJ, posso creare senza errori dall'IDE IntelliJ, ma quando provo a creare dalla riga di comando ottengo errori di compilazione. Sembra che Gradle non stia elaborando le annotazioni e non riesca a trovare le dichiarazioni getter/setter e log. Il progetto funziona anche senza errori.

riga di comando:

./gradlew build 

Errori:

/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 

Errore:

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

Entity Classe:

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; 

} 

Ho cercato di capire questo fuori per ore, ma totalmente bloccato. Qualsiasi aiuto sarebbe apprezzato.

+0

potete inserire la vostra classe SecurityUtils? – Ethan

+0

Hai incluso anche una dipendenza su SLF4J? –

+1

Grazie a Ethan e Roel per le vostre risposte. Ho aggiunto ulteriori dettagli per mostrare che ricevo errori di compilazione su getter/setter e dichiarazioni di registro. Non penso che sia specifico per la classe SecureUtils. Ho un gruppo compilato: 'org.springframework.boot', nome: 'spring-boot-starter-logging' sta fornendo SLF4J. –

risposta

11

È necessario specificare lombok come un processore di annotazione. Per fare ciò, sarà necessario aggiungere in seguito a build.gradle in un progetto Jhipster.

apply plugin: 'net.ltgt.apt' 

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

    /** ... */ 
} 

Jhipster utilizza net.ltgt.gradle:gradle-apt-plugin per l'elaborazione di annotazione.

Per la configurazione IntelliJ, è necessario verificare Enable annotation Processing.

Ulteriori informazioni: Project Lombok - android instructions

+1

ha risolto il problema – WeMakeSoftware

Problemi correlati