J'ai un projet Maven multi-module. Pour cet exemple, considérons deux modules:
dataconsumer
Le module consumera le module datacomme dépendance.
Le module datadéclare un tas de classes principales. Il y a des tests sous src/testqui les utilisent. Ces tests nécessitent une création d'objets de longue haleine, j'ai donc une classe avec des méthodes utilitaires pour créer ces objets. Cette classe utilitaire ( SampleDataHelper) est dans la src/testhiérarchie.
J'ai également quelques tests dans le consumermodule qui doivent créer certains de ces objets longs. Je souhaite utiliser ma SampleDataHelperclasse (définie dans data src/test) dans les tests qui résident dans mon consumer src/testarbre. Malheureusement, même s'il datas'agit d'une dépendance de consumer, consumerne peut pas voir les classes qui existent sous data src/test.
Pour lutter contre cela, j'ai pensé que je pourrais créer un autre module ( data-test) et passer SampleDataHelperà celui-ci sous src/main. Ensuite, j'inclurais data-testcomme une dépendance de portée de test de data. Malheureusement, cela introduit une dépendance circulaire: datautilise data-test, mais data-testnécessite également data.
La seule solution que je suis venu avec est à placer SampleDataHelpersous le data src/maincadre d' un testpaquet et d' espoir qu'aucun code d'application réelle que jamais il appelle.
Comment puis-je partager ma SampleDataHelperclasse entre les modules sans la mettre sous src/main?
data) avant même de pouvoir compiler mon deuxième module ( consumer).
mvn package, mais cela devrait fonctionner très bien en une seule étape lorsque vous utilisez mvn installou mvn deploy. Juste un petit mot. Dans l'un de nos grands projets, nous avons un wrapper sur junit TestBaseet il se trouve dans src/mainlequel je ne considère pas non plus comme une bonne idée.