- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何防止 AntClassLoader 和 URLClassLoader 导致链接错误?
由于项目较旧,junit 和 hamcrest.core 被放入 ANT_HOME 中,我们的构建使用 includeantruntime=true 来运行单元测试。
我现在正在开发一个用 ant 构建的项目,我不想依赖 ANT_HOME 中的任何 jar 文件。我在所有 javac 节中虔诚地使用了 includeantruntime=false 。
但是,现在我使用 hamcrest 进行测试,我收到运行时链接错误。
java.lang.LinkageError: loader constraint violation: when resolving method
"org.junit.Assert.assertThat(Ljava/lang/Object;Lorg/hamcrest/Matcher;)V"
the class loader (instance of org/apache/tools/ant/loader/AntClassLoader5)
of the current class, myclass, and the class loader (instance of
java/net/URLClassLoader) for resolved class, org/junit/Assert, have different
Class objects for the type assertThat used in the signature
junit 运行测试时发生运行时链接错误。
我似乎有两个选择,但我都不喜欢:
我本以为 includeantruntime 会有帮助。
我的目标是允许 junit 和 hamcrest.core 保留在 ANT_HOME 中,同时将它们包含在项目中。也就是说,ANT_HOME 的内容应该无关紧要。
这个问题有解决办法吗?
最佳答案
解决此问题有两个步骤:
<pathelement path="${java.class.path}" />
到测试环境的类路径。fork="true"
junit 元素的属性。您还可以为 junit 元素选择 fork 模式。例如,我使用forkmode="once"
. includeantruntime
应保留false
适用于所有条件。
允许 junit 显式 fork ,将 junit 类加载器与 ant 类加载器分开,防止任何无意的关联。需要 java.class.path 来明确允许 ant 找到执行所需的所有类。
通过这些设置,ant lib 目录中的库不会被使用,也不会干扰 JUnit 测试。
关于java - 没有 includeantruntime 的 ant LinkageError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30814603/
我遵循了 http://www.jacoco.org/jacoco/trunk/doc/examples/java/CoreTutorial.java 上的 CoreTutorial 示例类(clas
我正在尝试在tomcat 8.0.22上部署spring mvc项目。我使用Gradle作为项目构建者。当我尝试为项目午餐时,我有一个 error code 500 。 这就是我的项目: build.
尝试通过命令行使用数据库迁移插件 1.3.6 时出现奇怪的错误 grails --stacktrace dbm-generate-gorm-changelog changelog.groovy 错误是
我的 JSystem/Java/Eclipse 环境有一些问题。 我收到此错误,但我不明白出了什么问题: java.lang.LinkageError: loader constraint viola
我尝试从 发送带有附件的电子邮件但我收到这个错误。看不懂什么意思。 17:11:44,059 ERROR [http-nio-8080-exec-6][render_portlet_jsp:
我正在尝试将 jboss wildfly 8 配置为将 Jackson 用于 JSON。所以我加了 org.jboss.resteasy resteasy-jackson-provi
嘿嘿, friend 们,我的方法出现了异常......请帮我解决这样的错误 Exception in handleDisplayableEvent. Reason: LinkageError so
尝试运行我的 Flex 项目,但出现以下错误,请提出任何前进的建议:- 原因: java.lang.LinkageError: ClassCastException: attempting to ca
作为针对 L 预览测试现有 Android 应用程序的一部分,该应用程序崩溃并出现以下异常: 07-08 10:05:39.024: E/AndroidRuntime(2126): FATAL EXC
我正在为使用 Java servlet 的 WebSphere 6.1 开发一个应用程序。在我的 servlet 中,我定义了一个序列号 vesion ID 1L。在部署和运行我的应用程序时,我收到了
我正在开发一个大型应用程序,我刚刚在 axis 的帮助下添加了一个由 eclipse 生成的新 Web 服务。该应用程序在我的开发环境(应用程序由 jetty 托管)中运行良好,但现在我在 weblo
我确实遇到了 TestNG 和 RESTeasy 的一个非常烦人的问题。 我确实有一个类针对使用 RESTeasy 框架来公开自身的 API 类运行多个测试。 但是,如果我让测试使用 maven (m
在开发一个大量基于 XML 的 Java 应用程序时,我最近在 Ubuntu Linux 上遇到了一个有趣的问题。 我的应用程序,使用 Java Plugin Framework ,似乎无法转换 do
例如我们得到了: net.sf.jasperreports.engine.JRException: ... Caused by: net.sf.jasperreports.engine.fill.JR
我正在尝试创建一个类加载器,它将加载 .zip 文件中的 .class 文件。我按照本教程( https://weblogs.java.net/blog/2008/07/25/how-load-cla
我在规划 Eclipse Kepler 时遇到问题。 日志文件显示“无法运行处理器错误”:* !SESSION 2015-07-11 17:27:36.405 --------------------
出于项目目的,我不得不坚持使用Java 1.6进行开发,我使用了异步客户端jar文件并将其合并到我的项目中以实现异步功能,并使用java 1.6开发并导出了一个JAR。这个 jar 包含在另一个在 j
我有这个错误 java.lang.LinkageError: ClassCastException: attempting to tomcat-debug-eclispe/wtpwebapps/xwi
这是我的Java环境: ~: java -version java version "11.0.1" 2018-10-16 LTS Java(TM) SE Runtime Enviro
如何防止 AntClassLoader 和 URLClassLoader 导致链接错误? 由于项目较旧,junit 和 hamcrest.core 被放入 ANT_HOME 中,我们的构建使用 inc
我是一名优秀的程序员,十分优秀!