Maven编译给出:找不到符号-对于坐在同一应用程序中的类

斯蒂芬

自从我遇到这样令人费解的问题已经有一段时间了。我有一个类,该类引用另一个坐在同一个应用程序中的另一个包中的类,即不在另一个jar存档文件中。

包括的类是learnintouch-rest / src / test / java / com / thalasoft / learnintouch / rest / acceptance / AbstractControllerTest.java

包含的类是/home/stephane/dev/java/projects/learnintouch-rest/src/test/java/com/thalasoft/learnintouch/rest/config/WebTestConfiguration.java

在Eclipse下,编辑器中没有问题,也没有编译错误。

但是运行Maven构建会产生编译错误:

mvn clean test-compile -Pacceptance

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:testCompile (default-testCompile) on project learnintouch-rest: Compilation failure: Compilation failure:
[ERROR] /home/stephane/dev/java/projects/learnintouch-rest/src/test/java/com/thalasoft/learnintouch/rest/acceptance/AbstractControllerTest.java:[16,46] cannot find symbol
[ERROR] symbol:   class WebTestConfiguration
[ERROR] location: package com.thalasoft.learnintouch.rest.config
[ERROR] /home/stephane/dev/java/projects/learnintouch-rest/src/test/java/com/thalasoft/learnintouch/rest/acceptance/AbstractControllerTest.java:[21,116] cannot find symbol
[ERROR] symbol: class WebTestConfiguration

这是包含类的代码:

@RunWith(SpringJUnit4ClassRunner.class)
@Transactional
@WebAppConfiguration
@ContextConfiguration(classes = {
    ApplicationConfiguration.class,
    WebSecurityConfig.class,
    WebConfiguration.class,
    WebTestConfiguration.class
})
public abstract class AbstractControllerTest {

此抽象测试类位于接受测试目录下,该目录在运行Maven命令时要求显式激活-Pacceptance配置文件。

默认配置文件不运行此验收测试,而仅运行某些集成测试。

要注意的一件事是,该抽象类看起来像集成测试中使用的一个抽象类。

这是集成测试的包含类:

import com.thalasoft.learnintouch.rest.config.WebTestConfiguration;

@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration(classes = {ApplicationConfiguration.class},
        WebSecurityConfig.class,
        WebConfiguration.class,
        WebTestConfiguration.class
        })
@Transactional

public abstract class AbstractControllerTest {

如您所见,它看起来很像另一个。

如果有帮助,我还可以提供pom.xml文件的内容:

<profiles>
    <profile>
        <id>rest</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <test.source.dir>src/test/java/com/thalasoft/learnintouch/rest</test.source.dir>
        </properties>
    </profile>
    <profile>
        <id>acceptance</id>
        <activation>
            <activeByDefault>false</activeByDefault>
        </activation>
        <properties>
            <test.source.dir>src/test/java/com/thalasoft/learnintouch/rest/acceptance</test.source.dir>
        </properties>
    </profile>
</profiles>

如果您对此有任何了解,将不胜感激。

梅露

使用maven,您的测试可以访问项目的所有源代码(src / main / java)和所有测试源代码(默认为src / test / java)。

在这里,您的个人档案rest将测试源目录定义为src / test / java / com / thalasoft / learnintouch / rest,因此,您的测试代码可以访问src / main / java中的所有内容以及src / test / java / com / thalasoft中的所有内容/ learnintouch / rest

您的个人资料接受将测试源目录定义为src / test / java / com / thalasoft / learnintouch / rest / acceptance,因此,您的测试代码可以访问src / main / java中的所有内容以及src / test / java / com / thalasoft中的所有内容/ learnintouch / rest / acceptanceWebTestConfiguration不可访问,因为它在上述软件包中。

要使用不同的配置文件运行特定的测试,我建议配置负责运行测试的surefire插件。此处提供了一个很好的示例:https : //weblogs.java.net/blog/carcassi/archive/2011/04/21/running-integration-tests-and-unit-tests-separately-maven

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Eclipse中,Maven编译失败并显示“找不到符号”,它会编译

来自分类Dev

错误:找不到符号类编译

来自分类Dev

Maven编译“找不到符号”

来自分类Dev

编译Java程序“找不到符号”时发生错误

来自分类Dev

添加时间程序编译器错误:找不到符号

来自分类Dev

Java中的编译错误:找不到符号

来自分类Dev

是否可以为同一应用程序编译具有不同gcc优化级别的文件?

来自分类Dev

“错误:找不到符号类应用程序”

来自分类Dev

由于出现“找不到符号类X”错误,因此无法在Intellij Idea中编译Java类

来自分类Dev

Maven:MVN测试给出错误+在类路径中找不到类

来自分类Dev

Django 应用程序在同一目录中找不到 json 文件

来自分类Dev

jsp文件中的编译错误“找不到符号:变量位置:类simplyfiedJSPServlet”

来自分类Dev

找不到符号-T类

来自分类Dev

找不到符号所属的类

来自分类Dev

找不到符号类意图

来自分类Dev

找不到符号类BaseAdapter

来自分类Dev

找不到符号类newLatLng

来自分类Dev

找不到符号-T类

来自分类Dev

找不到符号:类NumberTools

来自分类Dev

找不到符号类newLatLng

来自分类Dev

Java:找不到符号类

来自分类Dev

找不到符号类 KeyEvent

来自分类Dev

Dagger 2,有时在编译时出现“找不到符号类DaggerApplicationComponent”

来自分类Dev

编译错误:在Android Studio中找不到符号AudioEffect :: setParameter

来自分类Dev

线程“main”中的异常 java.lang.RuntimeException:无法编译的源代码 - 找不到符号

来自分类Dev

在Rails应用程序中找不到本地gem类

来自分类Dev

在Laradock应用程序中找不到类“ MongoId”

来自分类Dev

在Rails应用程序中找不到本地gem类

来自分类Dev

编译C程序会在代码块中给出“在搜索路径中找不到编译器可执行文件(GNU GCC编译器)”

Related 相关文章

  1. 1

    在Eclipse中,Maven编译失败并显示“找不到符号”,它会编译

  2. 2

    错误:找不到符号类编译

  3. 3

    Maven编译“找不到符号”

  4. 4

    编译Java程序“找不到符号”时发生错误

  5. 5

    添加时间程序编译器错误:找不到符号

  6. 6

    Java中的编译错误:找不到符号

  7. 7

    是否可以为同一应用程序编译具有不同gcc优化级别的文件?

  8. 8

    “错误:找不到符号类应用程序”

  9. 9

    由于出现“找不到符号类X”错误,因此无法在Intellij Idea中编译Java类

  10. 10

    Maven:MVN测试给出错误+在类路径中找不到类

  11. 11

    Django 应用程序在同一目录中找不到 json 文件

  12. 12

    jsp文件中的编译错误“找不到符号:变量位置:类simplyfiedJSPServlet”

  13. 13

    找不到符号-T类

  14. 14

    找不到符号所属的类

  15. 15

    找不到符号类意图

  16. 16

    找不到符号类BaseAdapter

  17. 17

    找不到符号类newLatLng

  18. 18

    找不到符号-T类

  19. 19

    找不到符号:类NumberTools

  20. 20

    找不到符号类newLatLng

  21. 21

    Java:找不到符号类

  22. 22

    找不到符号类 KeyEvent

  23. 23

    Dagger 2,有时在编译时出现“找不到符号类DaggerApplicationComponent”

  24. 24

    编译错误:在Android Studio中找不到符号AudioEffect :: setParameter

  25. 25

    线程“main”中的异常 java.lang.RuntimeException:无法编译的源代码 - 找不到符号

  26. 26

    在Rails应用程序中找不到本地gem类

  27. 27

    在Laradock应用程序中找不到类“ MongoId”

  28. 28

    在Rails应用程序中找不到本地gem类

  29. 29

    编译C程序会在代码块中给出“在搜索路径中找不到编译器可执行文件(GNU GCC编译器)”

热门标签

归档