java - Thorntail 示例/API 不兼容
问题描述
尝试在 github 上打包thorntail-examples 项目时,构建失败的几个示例说明类似于此的 API 不兼容错误...
[ERROR] Failed to execute goal io.thorntail:thorntail-maven-plugin:2.3.0.Final-SNAPSHOT:package (package) on project example-stm: Execution package of goal io.thorntail:thorntail-maven-plugin:2.3.0.Final-SNAPSHOT:package failed: An API incompatibility was encountered while executing io.thorntail:thorntail-maven-plugin:2.3.0.Final-SNAPSHOT:package: java.lang.AbstractMethodError: null
[ERROR] -----------------------------------------------------
[ERROR] realm = plugin>io.thorntail:thorntail-maven-plugin:2.3.0.Final-SNAPSHOT
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR] urls[0] = file:/home/<user>/.m2/repository/io/thorntail/thorntail-maven-plugin/2.3.0.Final-SNAPSHOT/thorntail-maven-plugin-2.3.0.Final-SNAPSHOT.jar
[ERROR] urls[1] = file:/home/<user>/.m2/repository/io/thorntail/fraction-metadata/2.3.0.Final-SNAPSHOT/fraction-metadata-2.3.0.Final-SNAPSHOT.jar
[ERROR] urls[2] = file:/home/<user>/.m2/repository/io/thorntail/meta-spi/2.3.0.Final-SNAPSHOT/meta-spi-2.3.0.Final-SNAPSHOT.jar
[ERROR] urls[3] = file:/home/<user>/.m2/repository/org/jboss/shrinkwrap/descriptors/shrinkwrap-descriptors-impl-javaee/2.0.0/shrinkwrap-descriptors-impl-javaee-2.0.0.jar
...
如果我删除其中一个依赖项,问题就会消失,例如对于jpa/jpa示例,当我尝试按原样构建时收到 API 不兼容错误,但如果我删除 h2 依赖项,它会清除错误。
我自己的项目也有类似的问题,添加 h2 或休眠会导致 API 不兼容错误,但如果我忽略这两个,应用程序运行良好。
有没有其他人遇到过这个问题?
解决方案
正如https://issues.jboss.org/browse/THORN-2229中所跟踪的,Thorntail 目前不能很好地与 Maven 3.6 配合使用。建议的解决方法是暂时切换回 Maven 3.5。
推荐阅读
- react-native - 通过“Back”键在不同的堆栈之间来回移动
- django - Redirect logged in users from register view
- javascript - compare a string with all elements of array in a single loop
- django - Django Rest Framework 中的 HTTPS 资源链接
- python - 如何修复 TypeError:无法连接类型为 ' 的对象
'; 只有 Series 和 DataFrame obj 有效吗? - ios - Swift: Updating labels in shared container view
- list - 倒数第二个配对案例
- python - 如何使这些 websocket 异步工作?
- c++ - 有没有办法一次操作数组的所有元素/一次处理多个变量?
- powershell - How to test connectivity to a remote computer in powershell