2013-12-11 2 views
1

переполнения-сообществе,Как избежать цикла в моем BuildPath (Specific Setup Project)

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

Мое рабочее пространство содержит 2 проекта, MainTool (Logger), над которыми я работаю, и второй инструмент (XMLParser), который необходимо поддерживать, компилировать и запускать независимо.

Project Logger:.. Ком ###### se.logger

Project XML:.. Ком ###### se.xml

Теперь приходит проблема:

XMLParser читает файл и создает объекты типа com. ######. Se. ЛЕСОЗАГОТОВИТЕЛИ .rvctesting.Node

LogTool принимает эти узлы, как это:

//This works cause I added XMLParser to BuildPath from Logger 
XMLParser p = new XMLParser(); 
p.parseXML(path); 
List<Node> list = p.getNodeList(); 

Проблема в том, что мне нужно либо 2 раза Node.java (в каждом проекте один) или 2 раза парсер в противном случае, у меня есть цикл в моем BuildPath. (Logger зависит от XMLParser, а XMLParser зависит от узла Node.java от com. ######. Se.logger.rvctesting) Но я хочу избежать этого, поскольку это было бы довольно избыточным и, конечно, сложно поддерживать. Другим решением было бы объединить оба проекта в один проект. Но тогда его еще сложнее поддерживать, и оба проекта больше не являются независимыми.

Я знаю, что это описание действительно невозможно представить, но я надеюсь, что кто-то может помочь мне исправить это. Или у вас есть идея, как изменить Project-Setup так, чтобы он соответствовал моим требованиям. Если кому-то нужна дополнительная информация, я рад предоставить их как можно скорее.

BR

Timo

ответ

1

Вы можете использовать интерфейсы для классов в Logger и создать третий проект Logger-api, где вы можете разместить их. Оба ваших проекта должны зависеть от этого. Таким образом, Logger может зависеть от XML и Logger-api и XML может зависеть только от Logger-api.

1

Решение сделать третье - библиотека - проект, на котором оба оригинальных проектов зависит и дает банку использовать.

Строительная инфраструктура, такая как maven идеально подходит для такого управления зависимостями. В каждой среде IDE также есть плагины для хорошей интеграции.

Это делает повторное использование кода полезным.