В настоящее время я пытаюсь сделать свою сборку (~30 пакетов) с помощью tycho.
Я столкнулся с некоторыми непонятными проблемами при использовании Mockito в моих модульных тестах.
Я создал eclipse-test-plugin
как фрагмент проекта для тестируемой связки.
Так как tycho должен разрешать необходимые пакеты, используя манифест, я удалил зависимость от mockito из pom.xml
.
Когда я затем пытаюсь добавить mockito в список требуемых комплектов в манифесте, mockito в списке отсутствует.
Я нашел этот пост и создал целевую платформу, указывающую на eclipse indigo.
Я включил специфику платформы, поэтому мне не нужен дельта-пакет eclipse. Затем происходит первая странная вещь. Eclipse говорит мне, что есть некоторые неудовлетворительные зависимости, и когда я устанавливаю вновь созданную целевую платформу как активную в eclipse, никакие пакеты, такие как org.osgi.framework
и т.д. не могут быть разрешены eclipse. Но когда я собираю eclipse-продукт
, используя tycho и целевую платформу, все работает.
Если я устанавливаю текущую установку eclipse в качестве активной платформы, пакеты разрешаются. Я выбрал следующее из выпуска indigo:
Итак, мой первый вопрос: "Что не так с моей целевой платформой, так что tycho может использовать ее, а eclipse - нет?"
Чтобы приблизиться к моей первоначальной проблеме (запуск mockito), я установил текущую установку eclipse в качестве активной целевой платформы. После этого Eclipse может разрешить пакет org.osgi.framework
и другие.
Затем я снова добавил ранее удаленную зависимость mockito в свой pom.xml
, как в вышеупомянутом сообщении. Но я все еще не могу найти mockito, когда пытаюсь добавить его к необходимым пакетам в манифесте.
Поэтому мой второй вопрос - "Что я делаю не так? Как ссылаться на пакеты, которые не опубликованы на сайте обновления eclipse, например, в центральном репозитории maven? "
Обновление: В ходе своих исследований я нашел два способа включения бандлов с не-p2-update-сайтов в мою целевую платформу:
eclipse-репозитория
включающей все желаемые пакеты. Затем созданный артефакт развертывается на общем веб-сервере. В целевой платформе вы можете ссылаться на репозиторий Nexus p2-proxy или на размещенный в Интернете p2-репозиторий.
Кто-нибудь знает другие способы - возможно, более удобные/менее дорогие?
Пожалуйста, помогите мне лучше разобраться в запутанном мире tycho...