2016-06-08 1 views
0

Предположим, что в Eclipse есть 2 проекта (не-Maven, legacy).Eclipse Java runtime classpath и различные версии библиотеки

  • А ->зависит от В и Lib-2.0.jar
  • B ->зависит от Lib-1.0.jar

Когда мы запускаем Helloworld.java от проекта А, среда выполнения является путь к классам A \ классы; А \ Lib \ Lib-2.0.jar, B \ классы; в \ Lib \ Lib-1.0.jar

(несмотря на то, библиотека Lib-1.0.jar я s не отмечен как «Экспортировано» на настройках пути построения Java в проекте B). Вероятно, этот флажок имеет влияние только на путь класса компиляции, а не на время выполнения.

Мы должны исключить lib-1.0.jar ПОСТОЯННО для всего проекта A (поскольку -2.0 содержит несовместимые изменения, а наличие lib-1.0.jar lib-2.0.jar в пуле времени выполнения приводит к плохим последствиям) ,

Желаемый путь к классам: A \ classes; A \ lib \ lib-2.0.jar; B \ classes.

Как это можно достичь в глобальном масштабе для всего проекта?

Я нашел возможность указать конкретную конфигурацию запуска с помощью пользовательского пути пути выполнения. Но этот способ решить эту проблему трудно: - нужно указать такую ​​конфигурацию запуска для каждого класса, который должен быть запущен в проекте A - необходимо изменить его, как только будут добавлены новые библиотеки.

Благодарим вас за идеи!

Project structure

ответ

0

Я не уверен, если это то, что вам нужно, но вы можете правой кнопкой мыши на проект A, Build Path -> Настроить Путь сборки и на вкладке Проекты добавить свой проект B, теперь, когда вы будете добавьте что-то в B, он будет «видимым» в A.

+0

К сожалению, это не то, что нужно. A уже зависит от B – leokom

+0

Проблема заключается в транзитивных библиотеках, которые должны быть исключены – leokom

+0

определить правило доступа на вкладке проекта и исключить библиотеку из проекта B – Stugal

Смежные вопросы