Я работаю над пакетом OSGi, используя bndtools в Eclipse. Я просто добавил новый пакет (Apache Commons Logging) в cnf/localrepo
хранилище, и наш CI сервер теперь провалив сборки:bnd плагин gradle не удается после добавления пакетов в репозиторий
[Gradle] - Launching build.
[workspace] $ gradle build
:mybundle : Cannot find /error/com.springsource.org.apache.commons.logging;version=0 Not found in [bnd-cache, Release, Local, Bndtools Hub, /var/lib/jenkins/jobs/myapp/workspace/cnf/nonosgi-repo r/w=true]
Error : com.springsource.org.apache.commons.logging;version=0 Not found in [bnd-cache, Release, Local, Bndtools Hub, /var/lib/jenkins/jobs/myapp/workspace/cnf/nonosgi-repo r/w=true]
названия проекта слегка затемненный только для простоты.
Мне кажется, что плагин gradle не обновляет индекс репозитория - если один из моих товарищей по команде обновляется из наших vcs без обновления в Eclipse, тогда они получают ту же ошибку.
Я знаю, что bndtools имеет плагин org.osgi.impl.bundle.repoindex.cli, но я не знаю достаточно о bndtools или gradle, чтобы применить его к моему проекту. Я также чувствую, что (а) плагин gradle должен обновлять репозитории самостоятельно или (б) я неправильно использую репозитории.
Возможно ли добавить задачу в наш build.gradle, который обновляет индексы перед сборкой?
Должны ли мы переместить все наши зависимости в онлайн-репозиторий, чтобы bnd не нуждался в управлении индексами?
Это LocalIndexedRepo. Мы использовали для фиксации индекса, но мы обнаружили, что атрибут «increment» в теге вызвал конфликты слияния каждый раз, когда кто-то вытащил из vcs. FileRepo не полезен для нас, потому что нам нужно разрешать зависимости во время выполнения из нашего репозитория. –
pconley
Я видел дискуссию о пользователях bndtools, но репозиторий github Eli больше не существует, и я не мог видеть происхождение его типа задачи IndexRepository. Однако теперь я вижу, что Bndtools-Hub имеет задачу (https://github.com/bndtools/bundle-hub/blob/master/build.gradle), которая индексирует свой репозиторий. Это и FixedIndexedRepo могут мне помочь. – pconley
Проблема Эли выполняла задачу реиндекса, а сборка - в том же шаге градации. Если вы выполняете отдельные вызовы градации, вы в порядке. Если вы хотите запускать один и тот же вызов градации, вам необходимо обработать исправление ошибок после шага reindex, как описано в групповом потоке. –