Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我可以从IntelliJ运行的JUnit测试中排除依赖项吗?_Java_Maven_Unit Testing_Intellij Idea_Junit - Fatal编程技术网

Java 我可以从IntelliJ运行的JUnit测试中排除依赖项吗?

Java 我可以从IntelliJ运行的JUnit测试中排除依赖项吗?,java,maven,unit-testing,intellij-idea,junit,Java,Maven,Unit Testing,Intellij Idea,Junit,我使用JUnit4/Mockito/PowerMock作为遗留应用程序的单元测试套件。PowerMock依赖于javassist:org.javassist:javassist:jar:3.20.0-GA:test 我们还依赖于Hibernate的旧版本,它引入了javassist的旧版本:javassist:javassist:jar:3.12.0.GA:compile 旧版本的javassist干扰了单元测试,导致了一个神秘的异常:java.io.IOException:invalid co

我使用JUnit4/Mockito/PowerMock作为遗留应用程序的单元测试套件。PowerMock依赖于javassist:
org.javassist:javassist:jar:3.20.0-GA:test

我们还依赖于Hibernate的旧版本,它引入了javassist的旧版本:
javassist:javassist:jar:3.12.0.GA:compile

旧版本的javassist干扰了单元测试,导致了一个神秘的异常:
java.io.IOException:invalid constant type:18

当直接通过Maven运行测试时,我可以通过将旧的jar从POM中的单元测试运行中排除来解决问题

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.19.1</version>
    <configuration>
        <classpathDependencyExcludes>
            <!-- our version of Hibernate pulls in a javassist dependency that is incompatible with Java8
                this can be removed once we upgrade Hibernate -->
            <classpathDependencyExclude>javassist:javassist</classpathDependencyExclude>
        </classpathDependencyExcludes>
    </configuration>
</plugin>

org.apache.maven.plugins
maven surefire插件
2.19.1
javassist:javassist

但是,在IntelliJ中直接运行测试时,仍然会发生错误。无法从IDE轻松调试测试是一个主要问题,因此如果有什么方法可以让IntelliJ排除旧的依赖关系,我会很高兴,直到我们最终可以升级Hibernate依赖项。

仅在maven surefire插件配置中直接从依赖项中排除依赖项……不幸的是,在使用较新版本的Javassist时,实际的生产代码不起作用。在升级Hibernate版本之前,我们一直需要在编译时使用旧的Javassist依赖项。对于稍后发现此问题的任何人,jetbrains上存在一个与此问题相关的活动问题: