J'ai un projet Maven multi-module. Pour les besoins de cet exemple, considérons deux modules :
data
consumer
Module consumer
a un module data
en tant que dépendance.
Module data
déclare un ensemble de classes de base. Il y a des tests sous src/test
qui les utilisent. Ces tests nécessitent la création d'objets de longue haleine. J'ai donc créé une classe contenant quelques méthodes utilitaires pour créer ces objets. Cette classe utilitaire ( SampleDataHelper
) est dans la src/test
hiérarchie.
J'ai aussi quelques tests dans le consumer
qui ont besoin de créer certains de ces objets de longue haleine. Je veux utiliser mon SampleDataHelper
(définie dans data src/test
) dans les tests qui se trouvent dans mon consumer src/test
arbre. Malheureusement, même si data
est une dépendance de consumer
, consumer
ne peut pas voir les classes qui existent sous data src/test
.
Pour combattre cela, j'ai pensé que je pourrais créer un autre module ( data-test
), et déplacer SampleDataHelper
à ce sujet sous src/main
. Ensuite, j'inclurais data-test
en tant que portée du test dépendance à l'égard de data
. Malheureusement, cela introduit une dépendance circulaire : data
utilise data-test
mais data-test
exige également data
.
La seule solution que j'ai trouvée est de placer SampleDataHelper
sous data src/main
sous un test
et espérer qu'aucun code d'application réel ne l'appelle jamais.
Comment puis-je partager mon SampleDataHelper
classe entre les modules sans le mettre sous src/main
?