Eu tenho um projeto Maven com vários módulos. Para fins deste exemplo, considere dois módulos:
dataconsumer
O módulo consumerpossui o módulo datacomo uma dependência.
O módulo datadeclara várias classes principais. Existem testes para src/testusá-los. Esses testes exigem alguma criação de objetos longos, então eu tenho uma classe com alguns métodos utilitários para criar esses objetos. Esta classe de utilitário ( SampleDataHelper) está na src/testhierarquia.
Também tenho alguns testes no consumermódulo que precisam criar alguns desses objetos longos. Quero usar minha SampleDataHelperclasse (definida em data src/test) em testes que residem na minha consumer src/testárvore. Infelizmente, mesmo sendo datauma dependência consumer, consumernão consigo ver as classes que existem abaixo data src/test.
Para combater isso, pensei em criar outro módulo ( data-test) e passar SampleDataHelperpara ele abaixo src/main. Então eu incluiria data-testcomo dependência de escopo de testedata . Infelizmente, isso introduz uma dependência circular: datausa data-test, mas data-testtambém exige data.
A única solução que eu vim acima com é colocar SampleDataHelpersob data src/mainsob um testpacote e esperança de que nenhum código de aplicação real nunca chama.
Como posso compartilhar minha SampleDataHelperclasse entre módulos sem colocá-la em baixo src/main?
data) antes que eu possa compilar meu segundo módulo ( consumer).
mvn package, mas deve funcionar bem em uma única etapa de compilação quando você usa mvn installou mvn deploy. Apenas uma nota rápida. Em um de nossos grandes projetos, temos um invólucro sobre o junit TestBasee ele está localizado no src/mainqual também não considero uma boa idéia.