1

我目前正在开发一个 Eclipse 插件。Tycho 和 Maven 支持它的构建和部署。现在我想将 Googles Guava v. 14 作为依赖项添加到项目中。在 Tychos wiki 页面上,我发现它只能解决依赖关系,如果它们是 OSGi 包。我找不到这个版本的 Guava 作为 OSGi 包。那么这种情况的常见解决方法是什么?

  • 从存储库中查看感兴趣的修订Guava,添加MANIFEST、捆绑它并添加到项目路径中,这对我来说就像一个非常肮脏的解决方法——我需要自己维护这个包,我不能简单地升级一个包,我需要提交一个用于 CI 的 VCS 中的二进制文件。
  • 做同样的事情,但将包存储在一些 maven 存储库中 - 使用源代码维护存储库实际上复制了现有的,升级不是那么简单。

在我看来,在 OSGi 项目中导入现有的 Java 代码非常非常困难。

4

3 回答 3

2

Guava 是 100% OSGi ......还有几个字符可以达到 30

于 2013-05-14T12:24:32.453 回答
1

不要尝试自己将库转换为 OSGi 包:

  • 或者,将库转换为 OSGi 包很简单,例如,如果可以使用基于 BND 的工具之一生成正确的清单。

    在这种情况下,图书馆的提供者应该直接这样做。对于 Maven 构建,他们只需要添加maven-bundle-pluginbundle的目标。

  • 或者,很难将库转换为 OSGi 包,例如因为库使用了在 OSGi 中不起作用的类加载概念。

    在这种情况下,需要更改库,而这只能由库的提供者完成。

于 2013-05-14T14:29:00.413 回答
0

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 中央存储库

    <repository>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
        <id>central</id>
        <name>Central Repository</name>
        <url>https://repo.maven.apache.org/maven2</url>
    </repository>
于 2017-03-27T14:51:16.797 回答