Предположим, что в 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 - необходимо изменить его, как только будут добавлены новые библиотеки.
Благодарим вас за идеи!
К сожалению, это не то, что нужно. A уже зависит от B – leokom
Проблема заключается в транзитивных библиотеках, которые должны быть исключены – leokom
определить правило доступа на вкладке проекта и исключить библиотеку из проекта B – Stugal