Teilen von Quell- / Testklassen zwischen Modulen in einem Multimodul-Maven-Projekt
Ich habe ein Maven-Projekt mit mehreren Modulen. In diesem Beispiel werden zwei Module betrachtet:
data
consumer
Modulconsumer
hat Moduldata
als eine Abhängigkeit.
Moduldata
deklariert eine Reihe von Kernklassen. Es gibt Tests untersrc/test
die sie benutzen. Diese Tests erfordern einige langwierige Objekterstellung, daher habe ich eine Klasse mit einigen Dienstprogrammmethoden, um diese Objekte zu erstellen. Diese Utility-Klasse (SampleDataHelper
) ist in demsrc/test
Hierarchie.
Ich habe auch einige Tests in derconsumer
Modul, das einige dieser langwierigen Objekte erstellen muss. Ich möchte meine verwendenSampleDataHelper
Klasse (definiert indata src/test
) in Tests, die in meinemconsumer src/test
Baum. Leider auchdata
ist eine Abhängigkeit vonconsumer
, consumer
kann die Klassen, die unter existieren, nicht sehendata src/test
.
Um dem entgegenzuwirken, dachte ich, ich könnte es schaffenEin weiterer Modul (data-test
) und bewegenSampleDataHelper
dazu untersrc/main
. Dann würde ich einschließendata-test
Als einTestumfang Abhängigkeit vondata
. Dies führt leider zu einer zirkulären Abhängigkeit:data
Verwendetdata-test
, aberdata-test
erfordert auchdata
.
Die einzige Lösung, die ich gefunden habe, ist zu platzierenSampleDataHelper
unterdata src/main
unter einemtest
Paket und hoffe, dass kein realer Anwendungscode es jemals aufruft.
Wie kann ich meineSampleDataHelper
Klasse zwischen Modulenohne es unterstellensrc/main
?