Ho un progetto Maven multi-modulo. Per il bene di questo esempio, considera due moduli:
data
consumer
Il modulo consumer
ha il modulo data
come dipendenza.
Il modulo data
dichiara un mucchio di classi principali. Ci sono test sotto src/test
che li usano. Questi test richiedono una creazione di oggetti prolissa, quindi ho una classe con alcuni metodi di utilità per creare questi oggetti. Questa classe di utilità ( SampleDataHelper
) è nella src/test
gerarchia.
Ho anche alcuni test nel consumer
modulo che devono creare alcuni di questi oggetti prolissi. Voglio usare la mia SampleDataHelper
classe (definita in data src/test
) nei test che risiedono nel mio consumer src/test
albero. Purtroppo, anche se data
è una dipendenza diconsumer
, consumer
non è possibile vedere le classi che esistono sotto data src/test
.
Per combattere questo, ho pensato di creare un altro module ( data-test
) e spostarmi SampleDataHelper
su di esso in src/main
. Quindi includerei data-test
come dipendenza dell'ambito del test di data
. Sfortunatamente, questo introduce una dipendenza circolare: data
usa data-test
, ma data-test
richiede anche data
.
L'unica soluzione che ho trovato è posizionare SampleDataHelper
sotto data src/main
sotto un test
pacchetto e la speranza che nessun codice reale applicazione mai lo chiama.
Come posso condividere la mia SampleDataHelper
classe tra i moduli senza inserirla src/main
?
data
) prima ancora di poter compilare il mio secondo modulo ( consumer
).
mvn package
, ma dovrebbe funzionare bene in un singolo passaggio quando usi mvn install
o mvn deploy
. Solo una breve nota. In uno dei nostri grandi progetti abbiamo un wrapper su junit TestBase
e si trova in src/main
cui non considero nemmeno una buona idea.