我有一个 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 中定义的版本。这是一个最小的例子。当您运行测试时(检查 ARQ.VERSION 是否等于 2.9.3),它会成功。当您构建项目并将其部署在 Tomcat 7 上时,您应该会看到 2.8.7 作为输出。
- 这种行为是预期的吗?为什么?
- 一个人怎么能强迫泽西岛使用 ARQ 2.9.3?
- 如果不可能,是否可以隔离 ROnto 以使用 2.8.7 而其他源使用 2.9.3?
提前致谢!