我有以下代码:

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

java - 即使包中包含,Maven也找不到类-LMLPHP

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


  找不到符号类RegexValidator


为什么找不到这个班?这是pom.xml问题吗?

最佳答案

这不是Maven问题。

如果RegexValidator类具有这样的声明:

package osu.cs362.URLValidator;
public class RegexValidator {
...
}


您将不会有问题。所以我想事实并非如此。
此外,filesytem文件夹不是Java软件包。

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

DomainValidatorTest就是这种情况。程序包与文件夹布局不对称,但是编译器可以找到该类,并且不会引起编译错误。


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

10-04 18:41