Как ссылаться на mockito в tycho?

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

My target-platform

Если я устанавливаю текущую установку eclipse в качестве активной платформы, пакеты разрешаются. Я выбрал следующее из выпуска indigo:

  • Eclipse RCP Plug-in Developer Resources
  • Equinox Target Components
  • Jetty Target Components

Итак, мой первый вопрос: "Что не так с моей целевой платформой, так что tycho может использовать ее, а eclipse - нет?"

Чтобы приблизиться к моей первоначальной проблеме (запуск mockito), я установил текущую установку eclipse в качестве активной целевой платформы. После этого Eclipse может разрешить пакет org.osgi.framework и другие.
Затем я снова добавил ранее удаленную зависимость mockito в свой pom.xml, как в вышеупомянутом сообщении. Но я все еще не могу найти mockito, когда пытаюсь добавить его к необходимым пакетам в манифесте.

Поэтому мой второй вопрос - "Что я делаю не так? Как ссылаться на пакеты, которые не опубликованы на сайте обновления eclipse, например, в центральном репозитории maven? "

Обновление: В ходе своих исследований я нашел два способа включения бандлов с не-p2-update-сайтов в мою целевую платформу:

  1. Nexus Pro
    Профессиональная версия Nexus поддерживает p2-Proxy-репозитории, которые могут обернуть стандартные maven-репозитории, такие как Maven Central Repository, в p2 update-сайт, но профессиональная версия стоит около $800 в год.
  2. Создание eclipse-репозитория
    Вы можете создать новый maven-проект с упаковкой eclipse-репозитория включающей все желаемые пакеты. Затем созданный артефакт развертывается на общем веб-сервере.

В целевой платформе вы можете ссылаться на репозиторий Nexus p2-proxy или на размещенный в Интернете p2-репозиторий.
Кто-нибудь знает другие способы - возможно, более удобные/менее дорогие?

Пожалуйста, помогите мне лучше разобраться в запутанном мире tycho...

Заранее спасибо

7
задан Community 23 May 2017 в 12:17
поделиться