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:

dataconsumer

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?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage