Я, вероятно, не слишком зацикливался на этом, но у моего проекта очень структурированный макет, который мне очень понравился. На этот раз такая большая структура оказалась полезной, поэтому я не хочу, чтобы она снова стала грязной.
Для начала каждый модуль состоит из нескольких пакетов Java:
com.mycompany.mysoftware.modulename
com.mycompany.mysoftware.modulename.impl
com.mycompany.mysoftware.modulename.osgi
com.mycompany.mysoftware.modulename.test
Основной код находится в .impl
. Интерфейсы, некоторые перечисления и некоторые классы контейнеров данных, которые используются другими модулями, живут в пакете без суффикса. В пакете .osgi
есть специальный код OSGi (BundleActivator
s и т. Д.), А в пакете .test
- модульные тесты.
Теперь у меня есть классы, которые имитируют модуль для тестирования других. Мне интересно, стоит ли мне помещать их в пакет .test
модуля common
, который уже содержит разделяемые библиотеки для основного кода, или мне нужен новый модуль test
, чтобы я мог установить другую зависимость область для в Maven.
ETA : Одна из проблем, с которыми я сталкиваюсь, заключается в том, что я получаю циклические зависимости: если у меня есть два модуля, а для модульных тестов требуется подделка другого, модуль, содержащий подделку, имеет зависимость на модуле, содержащем интерфейс, который является тем же модулем, который содержит модульное тестирование. Таким образом, подделка должна быть вместе с тестом, но это приводит к значительному дублированию кода. Или для каждого модуля я делаю поддельный модуль, но я чувствую, что он выходит из-под контроля ...