即使包含包,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
时,我得到:
cannot find symbol class RegexValidator
为什么找不到这门课?这是一个问题吗
# 1 楼答案
您应该将
DomainValidatorTest.java
移动到目录:src/test/java/osu/cs362/URLValidator
目录结构应与java包相同
# 2 楼答案
这不是一个专业问题
如果
RegexValidator
类具有如下声明:你不会有问题的。所以我想情况并非如此
此外,文件系统文件夹不是Java包
例如,没有人阻止您在文件夹中声明类:
osu/cs362
类路径文件夹,并这样声明类的包:fictive.folder
该类将编译
这就是
DomainValidatorTest
的情况。包与文件夹布局不对称,但类由编译器找到,并且不会导致编译错误。但当然,这是一种不好的做法,具有误导性。这就是为什么包应该始终与文件夹布局对称