【发布时间】:2012-11-05 17:39:09
【问题描述】:
我有一个 Maven 存储库,我在其中加载 Jena TDB 0.9.3(取决于 Jena ARQ 2.9.3)、Jersey 1.8 和 RMOnto 1.0。正如您所料,重点是对语义数据集进行一些分析。
看起来 RMOnto 内置了 ARQ 2.8.7,就像在“硬连线”中一样。它的 pom 文件中没有任何明确的依赖关系,但 jar 文件包含ARQ.class。这非常棘手,因为使用 Maven Enforcer Plugin 等您不会注意到它。
看起来这会导致 Jersey 使用 RMOnto 的 ARQ 版本,而不是 pom.xml 中定义的版本。这是minimal example。当您运行测试时(检查 ARQ.VERSION 是否等于 2.9.3),它会成功。当您构建项目并将其部署在 Tomcat 7 上时,您应该会看到 2.8.7 作为输出。
- 这种行为是预期的吗?为什么?
- 如何强制 Jersey 使用 ARQ 2.9.3?
- 如果不可能,是否可以隔离 RMOnto 以使用 2.8.7 而其他源使用 2.9.3?
提前致谢!
【问题讨论】: