我在Eclipse中使用Bndtools。我正在尝试将Apache Thrift添加为项目的依赖项。我的build.bnd有这个代码用于添加Maven Central以及我们的Nexus存储库:
-plugin.5.Nexus = \
aQute.bnd.repository.maven.pom.provider.BndPomRepository; \
releaseUrls=https://<NEXUS_URL>:8081/content/groups/public/ ; \
snapshotUrls=https://<NEXUS_URL>:8081/content/groups/public/ ; \
index=${.}/release.maven; \
pom = ${workspace}/cnf/maven-nexus.xml; \
name="Nexus"
-plugin.6.MavenCentral: \
aQute.bnd.repository.maven.pom.provider.BndPomRepository; \
releaseUrls = https://repo1.maven.org/maven2/; \
pom = ${workspace}/cnf/maven-central.xml; \
name = Maven Central
我尝试将依赖项添加到两个xml文件中,如下所示:
<dependency>
<groupId>org.apache.thrift</groupId>
<artifactId>libthrift</artifactId>
<version>0.10.0</version>
</dependency>
像Gson这样的其他依赖工作正常。我想要使用Thrift的项目的bnd.bnd文件只有这个内容:
-buildpath: \
org.apache.thrift
我也试过org.apache.libthrift,但我发现这应该是正确的OSGi包名。我总是得到
找不到/error/org.apache.thrift;version=0未找到
我在这里遗漏了什么吗?我是OSGi的新手,所以我可能会错过一些非常明显的东西。我也不确定我的存储库配置是否正确。不过,其他依赖项工作得很好。谢谢你的建议!
编辑: 也许作为附加信息:在Eclipse中,build.bnd文件在GUI视图中显示为空。这是否意味着,我的项目有点被破坏或者这是正常的吗?
EDIT2:为了测试(没有帮助)我还使用MavenBndRepository插件向BndPomRepository添加了Maven Central:
-plugin.7.MavenCentralAlternative = \
aQute.bnd.repository.maven.provider.MavenBndRepository; \
releaseUrl=https://repo.maven.apache.org/maven2/; \
index=${.}/central.maven; \
name="Maven Central Alternative"
EDIT3:问题必须与节俭相关。所有其他包工作得很好,只找不到Thrift。我目前的解决方法是手动将Thrift jar添加到项目中,并将其依赖项作为OSGi bundle引用,就像我试图首先添加Thrift一样。显然我现在得到这个警告:
Bndtools:.classpath包含一个无法使用的库 在持续整合期间