Как удалить явные зависимости от библиотек других проектов в конфигурациях запуска Eclipse? - PullRequest
3 голосов
/ 18 мая 2010

В Eclipse можно создавать конфигурации запуска в проекте, указывая зависимости времени выполнения от другого проекта. Проблема, которую я обнаружил, заключалась в том, что если у вас есть рабочее пространство с несколькими проектами, возможно, что у каждого проекта есть свои собственные библиотеки, то легко добавить явные зависимости во вторичном проекте в библиотеки, которые принадлежат другому проекту и поэтому могут быть изменены.

Ниже приведен пример этой проблемы:

proj1
    +-- src  
    +-- lib  
           +-- jar1-v1.0.jar  
           +-- jar2-v1.0.jar  
proj2  
    +-- src  
    +-- proj2-tests.launch

У меня нет зависимости от кода в proj2 / src до библиотек в proj1 / lib. Тем не менее, у меня есть зависимость от proj2 / src до proj1 / src, хотя в коде в proj1 / src имеется внутренняя зависимость от его библиотек jar1-v1.0.jar и jar2.v1.0.jar, я нужно добавить зависимость в proj2-tests.launch к библиотекам в proj1 / lib. Это приводит к следующим уродливым строкам в proj2-tests.launch:

<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?>&#10;<runtimeClasspathEntry path="3" projectName="proj1" type="1"/>&#10;"/>
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?>&#10;<runtimeClasspathEntry internalArchive="/proj1/lib/jar1-v1.0.jar" path="3" type="2"/>&#10;"/>
<listEntry value="<?xml version="1.0" encoding="UTF-8" standalone="no"?>&#10;<runtimeClasspathEntry internalArchive="/proj1/lib/jar2-v1.0.jar" path="3" type="2"/>&#10;"/>

Это не было бы большой проблемой, если бы не было необходимости время от времени развивать программное обеспечение, обновлять библиотеки и т. Д. Примите во внимание общую необходимость обновления библиотек jar1-v1.0.jar и jar2 -v1.0.jar к их версиям v1.1. Учтите, что у вас есть около 10 проектов в одной рабочей области, около 5 библиотек в каждой и около 4 конфигураций запуска. Вы получаете дополнительные затраты на обслуживание при выполнении простого обновления библиотеки, которое обычно должно подразумевать изменения в файлах, в которых не было необходимости. А может я что-то не так делаю ...

Я хотел бы заявить, что proj2 зависит от proj1 и его библиотек, и переводить это просто в файлы * .launch. Это возможно?

1 Ответ

2 голосов
/ 18 мая 2010

Если я не ошибаюсь, если вы добавите project1 в путь сборки project2, модуль запуска для project2 будет включать правильный путь к классу, даже если зависимости project1 изменятся:

альтернативный текст http://img24.imageshack.us/img24/9511/eclipsebuildpath.png

(свойства проекта2, путь сборки Java, вкладка «Проекты»)

...