MapStruct – Implementierung kann nicht gefunden werden
Posted: 12 Jan 2025, 10:36
Mit den neuesten Springboot- und MapStruct-Versionen und dem Erstellen mit Maven versuche ich, das „Start Here“-Beispiel aus der offiziellen MapStruct-Site zu implementieren
Mein Code ist gerade einfacher:
pom.xml
Car.java
CarDto.java
}
CarMapper.java-Schnittstelle
Hauptanwendung
Der gesamte Code befindet sich in diesem öffentlichen Repo: https://github.com/pgbonino/mappertest
Beim Ausführen erhalte ich diese Fehlermeldung:
Ich habe dieses Problem im offiziellen MapStruct-Projekt gefunden, das anscheinend dasselbe Problem beschreibt. In diesem Fall wurde jedoch eine benutzerdefinierte Konfiguration durchgeführt (benutzerdefinierter Name der Implementierung). In meinem Fall ist alles auf den Standardeinstellungen belassen.
Irgendeine Idee?
Mein Code ist gerade einfacher:
pom.xml
Code: Select all
1.3.1.Final
(...)
org.mapstruct
mapstruct
${org.mapstruct.version}
(...)
org.apache.maven.plugins
maven-compiler-plugin
1.8
1.8
org.mapstruct
mapstruct-processor
${org.mapstruct.version}
Code: Select all
public class Car {
private String model;
// Constructors, setters and getters...
}
Code: Select all
public class CarDto {
private String theModel;
// Constructors, setters and getters...
CarMapper.java-Schnittstelle
Code: Select all
@Mapper
public interface CarMapper {
CarMapper INSTANCE = Mappers.getMapper( CarMapper.class );
@Mapping(source = "model", target = "theModel")
CarDto carToCarDto(Car car);
}
Code: Select all
@SpringBootApplication
public class MappertestApplication {
public static void main(String[] args) {
SpringApplication.run(MappertestApplication.class, args);
Car c = new Car("Volkswagen");
CarDto cdto = CarMapper.INSTANCE.carToCarDto(c);
}
}
Beim Ausführen erhalte ich diese Fehlermeldung:
Code: Select all
Exception in thread "main" java.lang.ExceptionInInitializerError
at com.gallelloit.mappertest.MappertestApplication.main(MappertestApplication.java:14)
Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: Cannot find implementation for com.gallelloit.mappertest.CarMapper
at org.mapstruct.factory.Mappers.getMapper(Mappers.java:61)
at com.gallelloit.mappertest.CarMapper.(CarMapper.java:10)
... 1 more
Caused by: java.lang.ClassNotFoundException: Cannot find implementation for com.gallelloit.mappertest.CarMapper
at org.mapstruct.factory.Mappers.getMapper(Mappers.java:75)
at org.mapstruct.factory.Mappers.getMapper(Mappers.java:58)
... 2 more
Irgendeine Idee?