gpt4 book ai didi

java - 将 bundle 添加到存储库后,bnd gradle 插件失败

转载 作者:行者123 更新时间:2023-11-30 03:03:48 25 4
gpt4 key购买 nike

我正在 Eclipse 中使用 bndtools 开发 OSGi 包。我刚刚向 cnf/localrepo 存储库添加了一个新包(apache commons 日志记录),而我们的 CI 服务器现在构建失败:

[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 的了解还不够,无法将其应用到我的项目中。我还觉得 (a) gradle 插件应该自行刷新存储库,或者 (b) 我错误地使用了存储库。

是否可以向我们的 build.gradle 添加一个任务,在构建之前刷新索引?
我们是否应该将所有依赖项移至在线存储库,以便 bnd 不需要管理索引?

最佳答案

cnf/localrepo 是什么样的存储库?如果是FileRepo ,那么你不需要索引。您只需将 bundle 放入 bundle 的 bsn/版本的文件夹/文件名格式中即可。如果是 indexed repo ,那么您必须维护索引并将其与添加到存储库的新 bundle 一起提交。这是我们管理的bundle-hub repo 。每当添加新包时,我们都会更新索引。

对于 gradle 插件,您可以编写一个任务来为每个构建重新索引您的存储库。请参阅https://groups.google.com/forum/#!searchin/bndtools-users/index$20gradle/bndtools-users/OQ0Ns5v0ELo/JOB803lBBwAJ有关如何执行此操作的讨论。

关于java - 将 bundle 添加到存储库后,bnd gradle 插件失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35305668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com