gpt4 book ai didi

osgi - 无法从 Bndtools 中的 Maven 存储库添加测试依赖项

转载 作者:行者123 更新时间:2023-12-01 08:06:50 25 4
gpt4 key购买 nike

在Bndtools工作区,我想在某个项目中添加对JUnit和Mockito的依赖

因此项目的bnd.bnd文件包含这个-testpath指令:

-testpath: \
junit:junit;version=latest,\
org.mockito:mockito-core;version=latest

cnf/ext/repositories.bnd 中的“全局”bnd 文件表示这些存储库:

-plugin: \
aQute.bnd.repository.osgi.OSGiRepository; \
name=Bndtools Hub; \
locations=https://raw.githubusercontent.com/bndtools/bundle-hub/master/index.xml.gz; \
, \
aQute.bnd.repository.maven.pom.provider.BndPomRepository; \
releaseUrls=https://repo.maven.apache.org/maven2/; \
pom=${workspace}/cnf/maven-central.xml; \
location=cnf/cache/maven-central.xml; \
name=Maven Central;

maven-central.xml 列出了这些依赖项:

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>2.6.3</version>
</dependency>
</dependencies>

存储库 View 显示了两个存储库。 Mockito 库甚至存在于两个存储库中:Maven 存储库中的 v2.6 和 Bndtools Hub 中的 v 1.x

JUnit 依赖可以很好地解决,但是无论我如何尝试,Mockito 依赖都无法解决:

Repositories View 用感叹号 [!]NullPointerException 修饰无法解析的条目

enter image description here

调试 Bndtools 使我得出结论,即没有相应 POM 文件的本地副本(参见 bnd issue #1849)。但是,我无法弄清楚为什么没有 POM 文件。

我还尝试了其他库而不是 Mockito,例如 AssertJ,但没有明显差异。因此,这似乎不是 Mockito 本身的问题。

任何关于为什么无法解决 Mockito 或如何解决此问题的提示都将非常受欢迎。

最佳答案

我不确定为什么您的示例不起作用,但我已经成功地将 Bndtools 4.1 和 4.2-dev 与 Mockito 和 AssertJ(并且同时)一起使用。 OSGi enRoute 7.0 模板包括 Mockito。

我有点怀疑你的 pom 指定 2.6.3 但 Bndtools 存储库 View 显示 2.6.0。在我看来,Bndtools 没有刷新它或者可能没有正确解析它。它还没有下载 Mockito 的传递依赖项。也许确保您没有在离线模式下运行?

尝试升级到最新版本的 Bndtools,看看是否可以解决问题。我刚刚用 4.2-dev 和 Mockito 2.6.3 尝试过它,它似乎可以工作(包括下载必要的传递依赖项)。

如果这不起作用,也许发布完整的 maven-central.xml pom 文件而不仅仅是依赖项部分(或者该文件是否仅包含依赖项部分?)。

我希望其中一些建议有所帮助。

另请注意(稍微不相关):如果您将 AssertJ 与 OSGi 一起使用,请确保使用 3.11.1 或更高版本。早期版本在 OSGi list 中有一个小错误,它阻止了假设的工作(参见 https://github.com/joel-costigliola/assertj-core/issues/1290)。

关于osgi - 无法从 Bndtools 中的 Maven 存储库添加测试依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41723391/

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