2014-11-21 2 views
21

У меня есть немного смешной проблема, и вместо того, чтобы искать раствора к нему, я ищу решение ов.Разрешающих или компилирование циклическая зависимости в Maven

Проект Alice имеет pom.xml. В нем помёт, что она упакована в банку, и хотя она сильная женщина, она зависит от Боба. Проект Боб, будучи дополняющим, говорит, что он зависит от Алисы. Эрго - круговая зависимость.

Конечно, бег mvn compile на Алисе говорит: «Алиса отсутствует Боб». И Боб, этот настоящий романтик, если вы попытаетесь скомпилировать его, он тоже скучает по Алисе.

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

Существует только два пути я знаю, как решить эту проблему:

  1. Marry их и сделать их один Maven проект.
  2. Перерыв их созависимость

Помимо того, что я не хочу, чтобы продвигать кровосмешение, что делает родительский POM и делает Алиса и Боб братьев и сестер решить эту проблему?

Любое другое решение s?

+8

Это сделало мой день. – BackSlash

+0

@BackSlash Минутный downvote сделал мой день. Интересно, почему. Это серьезный вопрос, я просто сформулировал его аллегорически. – Lan

+0

Похоже, вы уже знаете, как это исправить. – rodrigoap

ответ

6

Выясните, что именно Алиса и Боб отчаянно нуждаются друг в друге, и представьте, что - назовем его Чарли - как отдельный отдельный POM. Затем, Алиса и Боб зависят от Чарли.

Следует отметить, что круговые зависимости возникают часто из-за того, что некоторые модули охватывают больше, чем нужно. Учитывая, что Алисе нужно, чтобы Боб и Боб нуждались в Алисе, есть что-то, что можно отделить от этих двух модулей и ввести в качестве третьего.

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

Смежные вопросы