Eclipse: присоедините источник / javadoc к библиотеке через локальное свойство - PullRequest
10 голосов
/ 19 ноября 2008

У меня есть сторонняя библиотека в моем репозитории SVN, и я хотел бы связать источник / javadoc с ней локально в Eclipse. То есть, должен быть какой-то локальный параметр (например, запись в файле local.properties), который связывает источник / javadoc с файлом JAR, но который не вводит локальные зависимости в репозиторий через .classpath. В идеале я бы имел

lib_src_dir = /my/path/to/lib/src

в local.properties, а затем

<classpathentry kind="lib" path="lib.jar" sourcepath="${lib_src_dir}">

в .classpath. Можно ли это сделать?

[EDIT] @ Ответ VonC полезен ... Есть ли способ загрузить переменные пути из текстового файла (например, local.properties) вместо прохождения через Window -> Preferences -> General -> Workspace -> Linked Ресурсы?

Ответы [ 3 ]

17 голосов
/ 19 ноября 2008

Я считаю, что это будет лучше достигнуто через:

  • создание связанной папки в сочетании с
  • объявление связанного ресурса

Связанный ресурс определяет переменную пути, которая будет равна /my/path/to/lib/src

Eclipse Linked Resources

Связанная папка будет ссылаться на ваш связанный ресурс

Linked Resources

(вы можете использовать переменную, а не фиксированный путь, с помощью кнопки «Переменная»)

Переменная на самом деле всегда локальна (для своего рабочего пространства) и будет изменена на экране настроек Linked Resources.

Связанная папка также может быть ... связанным файлом , что позволяет ссылаться на архив по относительному пути (относительно переменной).
Затем этот связанный файл (здесь связанный архив) может быть связан с вашим classpathentry в атрибуте "source".


Проблема со связанными ресурсами заключается в том, что они являются локальными по отношению к рабочему пространству в настройках.
Вы можете экспортировать настройки в [myPrefs.epf] файле , а затем обрезать экспортированный файл, чтобы оставить только строки, содержащие pathvariable:

/instance/org.eclipse.core.resources/pathvariable.MY_DIRECTORY=/my/path/to/lib/src

Любой может затем импортировать этот специальный файл настроек, который повлияет только на часть "Linked Resources".

Это решение не очень удовлетворительное, поскольку файл настроек .epf не может быть автоматически загружен в проект .
Когда я настраиваю проект со связанными ресурсами, определяющими путь, я всегда оставляю большой README.txt в корне моего проекта, чтобы побудить пользователя указанного проекта определять те же самые связанные ресурсы с его / ее собственным фиксированным локальным путь.

Несколько ошибок находятся в процессе улучшения этой ситуации или вокруг темы Связанные ресурсы .

Особенно:


DevByStarlight упоминает в комментариях проект (не очень активный с октября 2011 г.) workspacemechanic .

Workspace Mechanic автоматизирует обслуживание вашей среды Eclipse, изменяя настройки, добавляя местоположения расширений и так далее. Вы можете использовать его для:

  • Создайте согласованную среду среди групп, таких как вся компания, ваша местная команда или даже среди множества ваших рабочих областей
  • Экономьте время, настраивая новые рабочие пространства
  • Создание задач, обеспечивающих применение ваших любимых новых предпочтений ко всем вашим текущим и будущим рабочим областям. (Это одна из наших любимых функций!)

Ключом к поведению Механика рабочего пространства является Task.
Задача описывает простой тест и действие, которое при запуске изменяет среду, чтобы впоследствии тест прошел.
Tasks может иметь различные формы: файлы настроек, классы Java, скрипты Groovy и расширения Eclipse. Вы можете легко определить свои собственные задачи.

Он поставляется с набором скриптов:

6 голосов
/ 15 декабря 2011

Я только что придумал простой ответ на это (в Индиго) после работы над ним в фоновом режиме и свободных моментов в течение нескольких дней. Самый простой способ, который я нашел, - это развернуть ваш проект в Project Explorer, зайти в свои Библиотеки со ссылками, щелкнуть правой кнопкой мыши по соответствующему ссылочному JAR и выбрать Свойства. Там у вас есть возможность указать местоположение JavaDocs. Введите местоположение папки, содержащей index.html и пакет-список, файлы, которые являются частью Javadocs. Кусок торта!

Единственная проблема, которую я вижу до сих пор, заключается в том, что я уверен, что вам нужно делать это во всех проектах, которые ссылаются на эту библиотеку.

0 голосов
/ 19 ноября 2008

Вы можете сделать это с переменными classpath.

Каждый разработчик создает пару новых переменных в Window -> Preferences -> Java -> Build Path -> Classpath Variables.

Определите переменную (скажем, JAVA_LIB_DIR), которая указывает на каталог, содержащий сторонний JAR (или JARS). Определите другую переменную, которая указывает на каталог, содержащий сторонний исходный код (JAVA_SRC_DIR). Вы можете настроить это так, как вам нравится, но у нас есть такая структура:

common/   
  lib/
    java/       <-- JAVA_LIB_DIR variable points to this directory
      axis/
      bitronix/
        1.0/bitronix.jar   "extension" is "bitronix/1.0/bitronix.jar"
      ...

В пути сборки вашего проекта используйте опцию «Добавить переменную ...», чтобы добавить библиотеку. Затем, когда вы «подключите исходный код», вам будет предложено указать переменную и расширение исходного кода.

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

...