【问题标题】:Spring dependance error in my pom file我的 pom 文件中的 Spring 依赖错误
【发布时间】:2014-03-14 01:11:30
【问题描述】:

我在尝试对一个简单的 spring 项目运行一些 dbunit 测试时遇到了一些错误。

java.lang.IncompatibleClassChangeError: Found class org.springframework.test.context.TestContext, but interface was expected
    at com.github.springtestdbunit.DbUnitTestExecutionListener.prepareTestInstance(DbUnitTestExecutionListener.java:86)

这是我的错误。我知道它与依赖关系有关,我一直在摆弄它们(升级等)。为了清楚起见,这是我的 pom.xml。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.springframework.samples</groupId>
    <artifactId>TheHitProject</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <properties>

        <!-- Generic properties -->
        <java.version>1.6</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

        <!-- Spring -->
        <spring-framework.version>3.2.3.RELEASE</spring-framework.version>

        <!-- Hibernate / JPA -->
        <hibernate.version>4.2.1.Final</hibernate.version>

        <!-- Logging -->
        <logback.version>1.0.13</logback.version>
        <slf4j.version>1.7.5</slf4j.version>

        <!-- Test -->
        <junit.version>4.11</junit.version>

    </properties>

    <dependencies>
        <!-- JDBC etc -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.6</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${org.springframework.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>${org.springframework.version}</version>
        </dependency>
        <!-- Spring and Transactions -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring-framework.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>${spring-framework.version}</version>
        </dependency>

        <!-- Logging with SLF4J & LogBack -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${slf4j.version}</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>${logback.version}</version>
            <scope>runtime</scope>
        </dependency>

        <!-- Hibernate -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>${hibernate.version}</version>
        </dependency>


        <!-- Test Artifacts -->
        <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>${spring-framework.version}</version>
    <scope>test</scope>
</dependency>

        <!-- <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>4.0.0.R</version>
            <scope>test</scope>
        </dependency> -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>
        <!--DB unit  -->
        <dependency>
    <groupId>org.dbunit</groupId>
    <artifactId>dbunit</artifactId>
    <version>2.4.9</version>
</dependency>   
<dependency>
      <groupId>com.github.springtestdbunit</groupId>
      <artifactId>spring-test-dbunit</artifactId>
      <version>1.1.0</version>
      <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.5</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.hsqldb</groupId>
    <artifactId>hsqldb</artifactId>
    <version>2.3.2</version>
    <scope>test</scope>
</dependency>


    </dependencies>
</project>

【问题讨论】:

  • 使用mvn dependency:tree 帮助解决冲突。

标签: java spring dependencies


【解决方案1】:

spring-test-dbunit v. 1.1.0 需要 Spring 4。

http://mvnrepository.com/artifact/com.github.springtestdbunit/spring-test-dbunit/1.1.0

你没有使用 Spring 4。

【讨论】:

  • 谢谢戴夫,这当然是我的问题。感谢帮助
  • 要完成这个问题,错误现在是 java.lang.IllegalArgumentException: Unable to load dataset from "classpath:songwriterData.xml" using class com.github.springtestdbunit.dataset.FlatXmlDataSetLoader 这与我的有关吗依赖变化??
  • @StephenMcKenna 不知道;这是一个单独的问题。是在 src/test/resources 的根目录吗?
  • 是的,你是对的。菜鸟失误。如果我有资格给你一个绿色的大拇指,我会的。非常感谢戴夫。我会一直在毫无头绪地摆弄更新一个小时。
猜你喜欢
  • 2017-09-14
  • 2011-04-12
  • 2020-11-07
  • 2010-12-11
  • 1970-01-01
  • 2015-08-31
  • 2022-12-06
  • 1970-01-01
  • 2011-12-26
相关资源
最近更新 更多