J'essaie de configurer lombok dans mes sts.
Jusqu'à présent, j'ai effectué ces étapes: J'ai téléchargé le fichier jar lambok. J'ai exécuté le fichier et spécifié le chemin pour sts.exe, puis j'ai cliqué sur installer. J'ai ajouté les dépendances requises dans mon pom.xml
@PutMapping(value="/students/{id}") public Student updateStudent(@PathVariable("id") @Min(1) int id, @Valid @RequestBody Student newstd) { Student stdu = studentservice.findById(id) .orElseThrow(()->new StudentNotFoundException("Student with "+id+" is Not Found!")); stdu.setFirstname(newstd.getFirstname()); stdu.setLastname(newstd.getLastname()); stdu.setEmail(newstd.getEmail()); return studentservice.save(stdu); } @DeleteMapping(value="/students/{id}") public String deleteStudent(@PathVariable("id") @Min(1) int id) { Student std = studentservice.findById(id) .orElseThrow(()->new StudentNotFoundException("Student with "+id+" is Not Found!")); studentservice.deleteById(std.getId()); return "Student with ID :"+id+" is deleted"; }
J'ai également édité mon fichier sts.ini. Après l'installation de lambok.jar, la ligne suivante était déjà là à la fin du fichier
package com.crud.msstudent.models; import java.io.Serializable; import javax.persistence.*; import javax.validation.constraints.NotEmpty; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import lombok.experimental.Accessors; @Getter @Setter @Accessors(chain=true) @NoArgsConstructor @AllArgsConstructor @Entity @Table(name = "student") public class Student implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy=GenerationType.IDENTITY) private int id; @NotEmpty(message = "First name is required") private String firstname; @NotEmpty(message = "Last name is required") private String lastname; @Column(nullable = true, name = "email") private String email; }
donc je l'ai déplacée à côté de
The method getFirstname() is undefined for the type Student
Ensuite, j'ai nettoyé mon projet. J'ai également mis à jour mon projet. Fermé sts, puis réexécuté mon application. Mais il ne reconnaît toujours pas les getters dans mon fichier. Cela produit l'erreur suivante.
-vmargs
Student.java:
-javaagent:E:\JAVA SOFTWARES\spring-tool-suite-3.9.8.RELEASE-e4.11.0-win32-x86_64\sts-bundle\sts- 3.9.8.RELEASE\lombok.jar
L'erreur est affichée dans mon StudentController.java déposer. Voici une partie du code:
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency>
Veuillez me dire ce qui me manque?
4 Réponses :
Si vous utilisez STS, il vous manque peut-être le plugin nécessaire. Pour plus de détails, veuillez consulter le site de Lombok pour savoir comment l'installer.
J'ai le plugin requis comme mentionné et j'ai déjà spécifié le chemin de sts.exe.
utilisez-vous Eclipse IDE? dans certains cas, vous devez mettre à jour le projet explicitement dans eclipse.
mieux vaut éviter d'utiliser lombok
public class Student implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy=GenerationType.IDENTITY) private int id; @NotEmpty(message = "First name is required") private String firstname; @NotEmpty(message = "Last name is required") private String lastname; @Column(nullable = true, name = "email") private String email; public Student() { } public Student(int id,String firstname,String lastname,String email) { this.id=id; this.firstname=firstname; this.lastname=lastname; this.email=email } public int getId() { return id; } public void setId(int id) { this.id=id; } public String getFirstname() { return firstname; } public void setFirstname(String firstname) { this.firstname=firstname; } public String getLastname() { return lastname; } public void setLastname(String lastname) { this.lastname=lastname; } public String getEmail() { return email; } public void setEmail(String email) { this.email=email; }
J'utilise STS.
créer des getters et des setters explicites alors tout ira bien
Est-ce que cela aide (source) :
Pour inclure lombok code > en tant que dépendance 'fournie', ajoutez-la à votre bloc comme ceci:
<annotationProcessorPaths> <path> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.12</version> </path> </annotationProcessorPaths>
JDK9 + avec module-info.java La configuration du plug-in du compilateur doit contenir les éléments suivants:
<dependencies> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.12</version> <scope>provided</scope> </dependency> </dependencies>
Quel IDE utilisez-vous?
afficher la classe
Student
avez-vous ajouté une annotation @ getter @ setter ou @ data à votre classe?
@AshishKarn J'utilise STS.
@ user7294900 Bien sûr Veuillez vérifier ma question mise à jour
@Habil oui. Veuillez vérifier ma question mise à jour
Tout semble correct. Effectuez une nouvelle installation en utilisant ce lien et vérifiez à l'emplacement ~ /. m2 / référentiel / org / projectlombok / lombok /
@Habil que voulez-vous dire?
@AshishKarn J'ai déjà tout fait dans ce lien mais malheureusement le problème est toujours là. et oui, il est là dans ~ / .m2 / repository / org / projectlombok / lombok /
le traitement des annotations doit être activé
@Bohemian Comment puis-je activer le traitement des annotations dans STS? Je ne trouve pas une telle option ici.
La commande
mvnw.cmd clean compile
réussit-elle?où dois-je exécuter cette commande? mvnw.cmd compilation propre
Suivez les instructions d'installation de Lombok ici
Veuillez publier votre fichier eclipse.ini entier.