Я пытаюсь обернуть несколько банок в пакеты, от которых я хочу, чтобы другие пакеты могли зависеть.В Spring dm Server это было так же просто, как добавить файл jar в новый проект пакета, экспортировать все классы и убедиться, что файл jar находился в путях сборки и классов.
Вот простойканонический пример того, что я пытаюсь сделать (и где я терплю неудачу):
Взять, к примеру, Joda Time, я бы хотел, чтобы это было в комплекте, чтобы я мог поделиться им как зависимостью.Сначала я создаю пакет для хранения jar:
- Создайте новый проект пакета Eclipse (Indigo Java EE)
- Создайте папку "lib" в корневом каталоге проекта
- Добавить joda-time-1.6.1.jar в папку "lib"
- Добавить lib / joda-time-1.6.1.jar в путь сборки
Обновите src / META-INF / MANIFEST.MF, чтобы экспортировать все классы:
Manifest-Version: 1.0
Bundle-Version: 1.0.0
Bundle-Name: joda-time
Bundle-ManifestVersion: 2
Bundle-SymbolicName: org.joda.time
Bundle-ClassPath: lib/joda-time-1.6.1.jar,
.
Export-Package: org.joda.time,
org.joda.time.base,
org.joda.time.chrono,
org.joda.time.convert,
org.joda.time.field,
org.joda.time.format,
org.joda.time.tz
Теперь мы хотим использовать это в каком-то новом созданном нами пакете:
- Создание нового проекта пакета в Eclipse (Indigo Java EE) "MyDepTest"
Редактирование src / META-INF / MANIFEST.MF для импорта org.joda.time:
Manifest-Version: 1.0
Bundle-Version: 1.0.0
Bundle-Name: MyDepTest
Bundle-ManifestVersion: 2
Bundle-SymbolicName: com.foo.deptest
Import-Package: org.joda.time
Import-Bundle: org.joda.time;version="[1.0.0,1.0.0]"
Добавьте пакет org.joda.time к ссылкам проекта , чтобы Eclipse мог разрешить зависимости
Напишите класс:
package com.foo.deptest;
import org.joda.time.DateTime;
public class SimpleDepTest {
public SimpleDepTest (){
DateTime dt = new DateTime();
}
}
Теперь org.joda.time.DateTime
должно разрешиться, но Eclipse указывает на следующую ошибку с красным подчеркиванием на org.joda
Импорт org.joda не может быть решен
Где я ошибся?Как обернуть банку в пакет, чтобы я мог использовать классы в других пакетах?