无法导入Spring的ReflectionTestUtils类

时间:2014-10-06 22:26:50

标签: java spring maven intellij-idea spring-test

我正在开发一个名为 acme-platform 的多模块maven项目,其模块设置如下:

  1. ACME管理员
  2. ACME-共同
  3. ACME全局
  4. ACME服务
  5. ACME的客户端
  6. ACME注册
  7. ACME的属性
  8. ACME测试
  9. (它们按照此顺序列在 acme-platform pom中。)

    在某些模块中,我已经能够使用Spring的ReflectionTestUtils类。但是,在最后一个模块中, acme-test ,我真的想要使用它,我无法做到。 acme-test pom中没有依赖部分,所以我添加了一个。这是pom:

    <?xml version="1.0" encoding="UTF-8"?>
    

    http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <parent>
        <artifactId>acme-platform</artifactId>
        <groupId>com.awesomeness.acme</groupId>
        <version>1.21.0</version>
        <relativePath>../</relativePath>
    </parent>
    
    <modelVersion>4.0.0</modelVersion>
    
    <artifactId>acme-test</artifactId>
    <version>1.21.0</version>
    
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </dependency>
    </dependencies>
    

    在添加依赖关系之前,我无法将任何Spring的api导入到我的类中。导入这些行之后,我能够访问大多数类,但不是所有类,特别是不是ReflectionTestUtils,即使它是弹簧测试模块的一部分(可以验证 {{3} } )。

    我正在使用Intellij。我查看了其他问题的答案(例如 here ),以确保我正确更新我的依赖项。无济于事。

    有没有人知道为什么我无法将org.springframework.test.util.ReflectionTestUtils导入 acme-test

    如果您需要任何附加信息,请与我们联系。

    修改

    依赖项的版本信息不在任何模块poms中,但它们在根pom( acme-platform )中指定。同样,我可以在其他模块中导入ReflectionTest,而不是在 acme-test 中。因此,我从中推断出,只要在根pom中使用指定版本声明依赖关系,它就不需要在任何模块poms中指定的版本。 (如果我错了,请纠正我。)

    其他编辑

    顺便说一下,我也无法导入junit。


1 个答案:

答案 0 :(得分:4)

您需要为scopetest依赖项将Maven spring-test设置为junit

例如:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <scope>test</scope>
</dependency>