2016-02-06 15 views
6

ich ein JHipster Projekt, in dem ich die Abhängigkeit für Lombok in build.gradle hinzugefügt haben:Gradle build nicht auf Lombok kommentierten Klassen

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

Und ich habe die Lombok-Plugin für IntelliJ ins Stocken geraten. Ich habe die Annotationsverarbeitung in IntelliJ aktiviert, ich kann ohne Fehler von der IntelliJ-IDE erstellen, aber wenn ich versuche, über die Befehlszeile zu erstellen, erhalte ich Buildfehler. Es scheint, dass Gradle die Annotationen nicht verarbeitet und die Getter/Setter- und Log-Deklarationen nicht finden kann. Das Projekt läuft auch ohne jegliche Fehler.

Befehlszeile:

./gradlew build 

Fehler:

/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 

Fehler:

/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-Klasse:

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 Klasse:

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; 

} 

Ich habe versucht, dies für Stunden, um herauszufinden, aber total fest. Jede Hilfe wäre willkommen.

+0

Können Sie Ihre SecurityUtils Klasse posten? – Ethan

+0

Haben Sie auch eine Abhängigkeit von SLF4J aufgenommen? –

+1

Danke Ethan und Roel für Ihre Antworten. Ich fügte weitere Details hinzu, um zu zeigen, dass ich Kompilierungsfehler bei Getter/Setter und Log-Deklarationen erhalte. Ich denke nicht, dass es spezifisch für die SecureUtils-Klasse ist. Ich habe eine Kompiliergruppe: 'org.springframework.boot', Name: 'Spring-Boot-Starter-Logging' bietet SLF4J. –

Antwort

11

Sie müssen lombok als Annotationsprozessor angeben. Um dies zu tun, müssen Sie folgende build.gradle in einem Jhipster Projekt hinzufügen.

apply plugin: 'net.ltgt.apt' 

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

    /** ... */ 
} 

Jhipster verwendet net.ltgt.gradle:gradle-apt-plugin für Annotation Verarbeitung.

Für IntelliJ Setup sollte Enable annotation Processing überprüft werden.

Mehr Info: Project Lombok - android instructions

+1

löste das Problem – WeMakeSoftware