Eclipse: присоединить источник /javadoc к библиотеке через локальное свойство

У меня есть сторонняя библиотека в моем SVN-репозитории, и я хотел бы связать source/javadoc с ней локально в Eclipse. I.e, должна быть какая-то локальная настройка (например, запись в файле 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 Ресурсы?

Ответ 1

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

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

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

Eclipse Linked Resources

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

Linked Resources

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

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

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


Проблема с Linked Resources заключается в том, что они локальны для рабочей области, в настройках.
Вы можете экспортировать настройки в файле [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. Вы можете легко определить свои собственные задачи.

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

Ответ 2

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

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

Ответ 3

Вы можете сделать это с помощью переменных класса.

Каждый разработчик создает пару новых переменных в Window → Preferences → Java → Build Path → Varipath 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, позволяя каждому разработчику находить свою собственную библиотеку и исходные каталоги там, где им нравится.