Использование пакетов, отличных от OSGi, в подключаемых модулях Eclipse

В настоящее время я разрабатываю плагин Eclipse. Его создание и развертывание поддерживается Tycho и Maven. Теперь я хотел бы добавить Googles Guava v. 14 в проект в качестве зависимости. На вики-странице Tychos я обнаружил, что он может разрешать зависимости, только если они Пакеты OSGi. Мне не удалось найти эту версию Guava в виде пакета OSGi. Итак, каков общий обходной путь для этой ситуации?

  • Проверьте интересующую ревизию из репозитория Guava, добавьте MANIFEST, свяжите ее и добавьте в путь к проектам, мне кажется, что это очень грязный обходной путь — мне нужно поддерживать эту связку самостоятельно, я не могу просто обновить связку, мне нужно закоммитить бинарник в VCS для CI.
  • Делаем то же самое, но сохраняем бандл в каком-нибудь репозитории maven — Поддержание репозитория с исходным кодом фактически дублирует существующий, обновление до которого не так просто.

Мне кажется, что очень-очень сложно импортировать существующий код Java в проекты OSGi.


person speechkey    schedule 14.05.2013    source источник


Ответы (3)


Не пытайтесь самостоятельно преобразовать библиотеку в комплект OSGi:

  • Либо просто превратить библиотеку в пакет OSGi, например. если правильный манифест может быть сгенерирован с помощью одного из инструментов на основе BND.

    В этом случае поставщик библиотеки должен сделать это напрямую. Для сборки Maven им просто нужно добавить bundle цель maven-bundle-plugin.

  • Или трудно превратить библиотеку в пакет OSGi, например. потому что в библиотеке используются концепции загрузки классов, которые не работают в OSGi.

    В этом случае библиотеку необходимо будет изменить, и это может сделать только поставщик библиотеки.

person oberlies    schedule 14.05.2013

Гуава - это 100% OSGi... и еще несколько символов, чтобы достичь 30

person Peter Kriens    schedule 14.05.2013
comment
Спасибо за ответ, я предполагаю, что сделал что-то не так с гуавой, но что с другими пакетами, отличными от OSGi? - person speechkey; 14.05.2013
comment
На самом деле, в настоящее время очень большое количество jar-файлов имеют метаданные OSGi. Итак, во-первых, избегайте банок, отличных от OSGi, как чумы. Во-вторых, выполните поиск на jpm4j.org. В-третьих, оберните его самостоятельно и добавьте на jpm4j.org. - person Peter Kriens; 16.05.2013
comment
Отлично, спасибо за jpm4j, выглядит многообещающе. Я это проверю. - person speechkey; 16.05.2013

Guava - это OSGI, добавьте это в свой pom.xml в разделе зависимостей.

    <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>18.0</version> <!--Replace with version you want to use-->
    </dependency>

Убедитесь, что вы указали репозиторий Maven Central в своем списке репозиториев.

    <repository>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
        <id>central</id>
        <name>Central Repository</name>
        <url>https://repo.maven.apache.org/maven2</url>
    </repository>
person kloklo90    schedule 27.03.2017