我刚刚在我的项目中添加了对 eclipse birt 的依赖,现在发生了非常奇怪的故障:
java.lang.SecurityException: sealing violation: package org.apache.derby.impl.store.raw.xact is sealed
在集成测试或
java.sql.SQLException: Catalogs at version level 'null' cannot be upgraded to version level '10.5'.
ERROR XCL20: Catalogs at version level 'null' cannot be upgraded to version level '10.5'.
谷歌搜索第一个点可能是对德比的依赖冲突。
mvn dependency:list
正在证明这一点。birt 需要 derby 10.5,我们的一个罐子需要 10.8。所以这两个 derby 依赖都是传递的(birts 依赖更间接——在树中更深一层)。
如何解决这个/这样的冲突?
(更改 pom 中的顺序没有帮助)
与此同时,我尝试了Dan Matthews-Grout 的答案——现在它起作用了:
<dependency>
<groupId>de.stalabw</groupId>
<artifactId>charts</artifactId>
<version>0.0.2</version>
<exclusions>
<exclusion>
<!-- does not work<groupId>org.apache.derby</groupId> but this:-->
<groupId>org.eclipse.birt.runtime.3_7_1</groupId>
<artifactId>derby</artifactId>
</exclusion>
</exclusions>
</dependency>
错误是相同的,“mvn dependency:list”没有改变。依赖ist charts->birt->derby 树的相关部分:
+- <myPackage.myProject>:metaDataService:jar:1.8.0:compile
| +- org.apache.derby:derby:jar:10.8.1.2:compile
...
\- <myPackage>:charts:jar:0.0.2:compile
\- org.eclipse.birt.runtime:org.eclipse.birt.runtime:jar:4.2.0:compile
...
+- org.eclipse.birt.runtime.3_7_1:derby:jar:10.5.1000001:compile