J'ai un projet JHipster dans lequel j'ai ajouté une dépendance pour Lombok dans build.gradle:
compile group: 'org.projectlombok', name: 'lombok', version: lombok_version
Et j'ai le plugin Lombok calé pour IntelliJ. J'ai activé le traitement des annotations dans IntelliJ, je peux construire sans erreurs à partir de l'IDE IntelliJ, mais lorsque j'essaie de construire à partir de la ligne de commande, j'obtiens des erreurs de construction. Il semble que Gradle ne traite pas les annotations et ne trouve pas les déclarations getter/setter et log. Le projet s'exécute également sans aucune sorte d'erreurs.
Ligne de commande:
./gradlew build
Les erreurs :
/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
Erreur:
/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
Classe de service:
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);
}
}
Classe d'entité:
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;
}
J'essaie de comprendre cela depuis des heures, mais je suis totalement coincé. Toute aide serait appréciée.
Vous devrez spécifier lombok
comme processeur d'annotation. Pour ce faire, vous devrez ajouter les éléments suivants à build.gradle
dans un projet Jhipster
.
apply plugin: 'net.ltgt.apt'
dependencies {
provided "org.projectlombok:lombok:$lombokVersion"
apt "org.projectlombok:lombok:$lombokVersion"
/** ... */
}
Jhipster
utilise net.ltgt.gradle:gradle-apt-plugin
pour le traitement des annotations.
Pour la configuration de IntelliJ
, Enable annotation Processing
doit être vérifié.
Plus d'informations: Project Lombok - Android instructions
J'ai eu le même problème et j'ai travaillé pour moi lors de l'ajout à build.gradle:
dependencies{
compileOnly 'org.projectlombok:lombok:1.18.8'
annotationProcessor 'org.projectlombok:lombok:1.18.8'
}
Ressource: https://projectlombok.org/setup/gradle
Le même problème auquel je faisais face où la construction propre de ./gradlew fonctionnait bien, mais quand j'essayais de faire un nettoyage propre de Gradle, les méthodes getter et setter qui sont supposées être générées par lombok n'étaient pas trouvées au moment de la construction de Gradle. Comme il jetait une exception d'échec de génération pour la compilation
Plus tôt, j'avais la version 3.4.1 du wrapper de grappin et la version 5.6.2 de gradle. Je suis donc en mesure de résoudre ce problème en rétrogradant ma version gradle à 4.10.0 où ma version wrapper gradle reste la même, c'est-à-dire 3.4.1
Ceci est la version gradle
Heure de construction: 2018-08-27 18:35:06 Révision UTC: ee3751ed9f2034effc1f0072c2b2ee74b5dce67d
Kotlin DSL: 1.0-rc-3 Kotlin: 1.2.60 Groovy: 2.4.15 Ant: Apache Ant (TM) version 1.9.11 compilée le 23 mars 2018 JVM: 1.8.0_191 (Oracle Corporation 25.191-b12) OS: Mac OS X 10.14.6 x86_64
Heure de construction: 2017-03-03 19:45:41 Révision UTC: 9eb76efdd3d034dc506c719dac2955efb5ff9a93
Groovy: 2.4.7 Ant: Apache Ant (TM) version 1.9.6 compilée le 29 juin 2015 JVM: 1.8.0_191 (Oracle Corporation 25.191-b12) OS: Mac OS X 10.14.6 x86_64
Ça marche pour moi