Подтвердить что ты не робот

Вкладка "Заказ и экспорт" в "Путь сборки Java"

enter image description here

Как использовать вкладку "Заказ и экспорт" в диалоговом окне "Путь сборки Java"? По названию "заказ" я могу догадаться, что библиотека JRE System выполняется поиск до зависимостей подключаемого модуля, но почему у нас есть "Экспорт" в пути сборки? А что это за кнопка слева от элементов?

ADDED

Это пример, который я заимствовал из Eclipse distilled.

Orderes.webapp зависит от заказов, но он, вероятно, будет использовать классы, определенные в ubl и каталоге.

enter image description here

В таком случае заказы могут экспортировать каталог и ubl, чтобы пакеты, зависящие от него, могли использовать каталог и ubl.

enter image description here

И еще кое-что о "Order and Export".

  • Проверка левой кнопки изменяет файл .classpath, чтобы добавить exported=true, например <classpathentry exported="true" kind="lib" path="lib/log4j-1.2.7.jar"/>.
  • src всегда проверяется, и вы не можете снять его.

Ссылки

4b9b3361

Ответ 1

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

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

Эта последняя функция заключается в том, почему флажки существуют с левой стороны, как вы просите (обратите внимание, что знаки "-" не могут быть сняты, поскольку исходные файлы, определенные в этом проекте, не могут быть отменены, как указано в файле справки). Зависимый проект, который ожидает, что какой-то ресурс из проекта, который будет внесен в проект, не будет компилироваться/выполняться, если входящий проект не экспортирует этот ресурс.

РЕДАКТИРОВАТЬ: см. это сообщение SO для подтверждения.

Ответ 2

очень хороший пример из Coderanch Ilja Preuss

Скажите, что у вас есть junit.jar в пути сборки проекта A. Проект B зависит от проекта A.

Теперь вы пишете тест junit в проекте B. Если проект A экспортирует junit.jar, проект B может использовать его во время компиляции - больше никаких действий необходимо. Если A не экспортирует его, B не знает об этом - вы будете должны явно помещать его в свой путь сборки.

Ответ 3

Order and Export, как вы правильно догадались, показывает порядок библиотек, которые будут включены в ваш путь построения проекта.

Используя кнопки up и down, вы можете настроить порядок своих библиотек в соответствии с вашими проектами.

Ответ 4

Чтобы ответить на ваш конкретный вопрос, если этот проект должен быть добавлен как зависимость для другого Java-проекта, заказ будет использоваться для разрешения классов и пакетов в этом проекте при запуске другого проекта. Говорят, что эти классы и пакеты экспортируются в/для другого запускаемого класса проекта.

Ответ 5

Есть один случай, когда я нашел это полезным. Я должен был использовать солнце. * Класс банки IBM. Этот класс также присутствовал в местном jre, но мое требование состояло в том, чтобы использовать класс IBM. Но по умолчанию компилятор будет ссылаться только на локальный класс jdk. На вкладке "Затмение" и "Экспорт" я переместил внешнюю банку перед JRE lib. Теперь компилятор будет ссылаться на класс из jar IBM вместо локальной JRE.