Page 1 of 1

MapStruct – Implementierung kann nicht gefunden werden

Posted: 12 Jan 2025, 10:36
by Guest
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

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}




Car.java

Code: Select all

public class Car {

private String model;

// Constructors, setters and getters...

}
CarDto.java

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

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

}

}
Der gesamte Code befindet sich in diesem öffentlichen Repo: https://github.com/pgbonino/mappertest

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
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?