Maven: наследство братьев и сестер - PullRequest
1 голос
/ 22 марта 2012

У меня проблема, похожая на яйцо и курицу.

У меня есть два дочерних модуля.Пакет обработки исключений находится в модуле MDP.Модуль MDP также ищет ссылку на модуль Transformer.

<dependency>
    <groupId>dcconverter</groupId>
    <artifactId>transformer</artifactId>
    <version>${converter-shell}</version>
    <type>jar</type>
    <scope>compile</scope>
</dependency>
 <dependency>
    <groupId>dcconverter</groupId>
    <artifactId>validate</artifactId>
    <version>${converter-shell}</version>
    <type>jar</type>
    <scope>compile</scope>
</dependency>

Таким образом, для построения модуля MDP трансформатор должен быть собран до того, как он станет зависимым.Я хочу реализовать ExceptionHandling в модуле Transformer.Он не может получить доступ к классам MDP, пока я не объявлю модуль MDP как зависимость.Здесь лежит проблема яйца и курицы.

Теперь я могу переместить обработку исключений в модуль Validate, который не имеет родственных зависимостей, которые решают проблему.Однако мне все еще нужно перечислить всех братьев и сестер с зависимостью от Validate.Это хорошая практика?Или есть способ обойти этих взаимозависимых братьев и сестер?

1 Ответ

2 голосов
/ 22 марта 2012

Будьте проще!Убедитесь, что у каждого артефакта есть четко определенные обязанности и интерфейсы.Почему бы вам не создать отдельный модуль только для функциональности обработки исключений?Затем вы можете включить это в любые другие модули, которым требуется эта функциональность.

Если вы сталкиваетесь с такими проблемами, как в настоящее время, это обычно означает, что ваши зависимости слишком сложны.Постарайтесь разбить это как можно больше.Затраты на добавление другого модуля должны быть довольно низкими по сравнению с дополнительной гибкостью и возможностью повторного использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...