2013-05-09 19 views
28

Come risolvere una dipendenza ciclica di tipo Maven. Supponiamo che A sia il progetto principale e B e C siano progetti figlio. Se B è dipendente da C e C dipende da B, esiste un modo per risolvere la dipendenza ciclica diversa dall'avere un progetto diverso.come risolvere la dipendenza ciclica di maven

Grazie in anticipo, ho cercato nei forum, ma non ho potuto ottenere la soluzione esatta. Per favore fatemi sapere se c'è qualche possibilità.

+1

Hai escluso la creazione di un nuovo progetto, che è quello che farei ... Qualche ragione per cui non vuoi farlo? Sarebbe la soluzione migliore. – NilsH

risposta

19

Maven non consente le dipendenze cicliche tra i progetti, perché altrimenti non è chiaro quale progetto creare per primo. Quindi è necessario sbarazzarsi di questo ciclo. Una soluzione è quella che hai già menzionato, per creare un altro progetto. Un altro sarebbe semplicemente spostare alcune classi da B a C o viceversa quando questo aiuta. O a volte è corretto unire il progetto B e C a un progetto se non è necessario averne due.

Ma senza conoscere e analizzare il motivo per cui i progetti dipendono l'uno dall'altro è difficile suggerire la soluzione migliore.

Quindi suggerisco di utilizzare strumenti come JDepend o lo strumento di analisi InteliJ per trovare le classi problematiche e in base a loro trovare un design migliore per il software.

La maggior parte delle volte creo qualcosa come un modulo di interfaccia e un modulo di implementazione, che elimina la maggior parte dei cicli.

6

Creare un nuovo progetto è davvero una soluzione.

Dependency Inversion è la seconda soluzione possibile.

Fare riferimento a here per il principio di dipendenza aciclica.

E here per il principio di inversione dipendenza.

Problemi correlati