即使包括包,Maven也找不到课程

时间:2016-11-23 17:09:48

标签: java maven

我有以下代码:

package osu.cs362.URLValidator;

import static org.junit.Assert.*;
import org.junit.Test;
import java.util.*;
import static org.mockito.Mockito.*;

public class DomainValidatorTest {
  RegexValidator rev = mock(RegexValidator.class);
}

这包括包含osu.cs362.URLValidator

的包RegexValidator

但是,在运行mvn test时,我得到了:

  

找不到符号类RegexValidator

为什么不能找到这门课?这是pom.xml问题吗?

2 个答案:

答案 0 :(得分:1)

您应该将DomainValidatorTest.java移至目录: src/test/java/osu/cs362/URLValidator

目录结构应与java包相同。

答案 1 :(得分:1)

这不是Maven的问题。

如果RegexValidator类有这样的声明:

package osu.cs362.URLValidator;
public class RegexValidator {
...
}
你不会有问题。所以我想情况并非如此 此外,filesytem文件夹不是Java包。

例如,没有人阻止您在文件夹中声明您的类: 您的classpath文件夹的osu/cs362,并声明该类的包:fictive.folder 该课程将编译。

DomainValidatorTest就属于这种情况。该包与文件夹布局不对称,但该类由编译器找到,并且不会导致编译错误。

但当然,这是一种不好的做法,这是误导。这就是为什么包应始终与文件夹布局对称的原因。