2016-07-09 12 views
0

Ich versuche, Mapstruct arbeiten auf Bohnen mit einer anderen Setter-Namenskonvention. Einige der Beans im Projekt heißen withValue(string val)CustomNaming-Strategie mit Mapstruct SPI

Basierend auf der Dokumentation ist es möglich, die Implementierung von AccessorNamingStrategy im Projekt und die Konfiguration des SPI durchzuführen. Auf dieser Grundlage habe ich meine eigene NamingStrategy und haben die folgende Datei in meinem Projekt erstellt

/META-INF/services/org.mapstruct.ap.spi.AccessorNamingStrategy mit dem voll quaified Namen meiner benutzerdefinierten Implementierung darin.

Aber ich konnte nicht scheinen, dass der Spi für meine benutzerdefinierte Benennungsstrategie funktioniert.

In den Optionen.java eingraben Ich fand die Eigenschaft "mapstruct.alwaysGenerateServicesFile" muss auf True festgelegt werden. Der Annotationsprozessor intelliJ scheint diese Eigenschaft jedoch abzulehnen, da sie von keinem der Annotationsprozessoren erneut erkannt wurde.

Ich sehe diese Eigenschaft auch "mapstruct.alwaysGenerateServicesFile" nicht

Ist diese Funktion noch in MapStruct unterstützt in http://mapstruct.org/documentation/1.1/reference/html/index.html#configuration-options dokumentiert. Hat jemand in Ihrem Projekt eine benutzerdefinierte Benennungsstrategie entwickelt?

Antwort

1

Ich habe es tatsächlich

Need /META-INF/services/org.mapstruct.ap.spi.AccessorNamingStrategy

und die CustomNamingStrategy in einem separaten Gefäß zu verpacken und sie in das Hauptprojekt.

+0

Froh, dass Sie eine Lösung gefunden haben. Die Benennungsstrategie SPI wird jetzt auch im MapStruct [Referenzhandbuch] (http://mapstruct.org/documentation/stable/reference/html/index.html#_custom_accessor_naming_strategy) beschrieben. – Gunnar