在一个maven项目中,我创建了一个简单的单元测试,它加载给定根包中的所有类,对它们进行迭代,并处理它们的包的一些信息(即是否为给定包提供了特定的注解)。
给定以下文件:
/src/main/com/andy/Foo.java
/src/main/com/andy/package-info.java
/src/main/com/andy/inner/Bar.java
src/test/com/andy/inner/SomeTest.java
src/test/com/andy/inner/package-info.java
当我加载 Class<?>
为了 Bar.java
,并尝试获取其包的注解(使用 Class#getPackage
方法),使我惊讶的是,我发现包以某种方式共享了 src/test
目录,其中 package-info.java
躺在table旁边 SomeTest.java
文件(否则包是相同的)。
我还发现它的工作方式也是相反的,也就是说,一节课没有 package-info.java
在 src/test
似乎有一个共同点 package-info.java
从同一个包裹下 src/main
目录。
这是特定于maven项目的,还是一种常规的java行为?有没有办法不从另一个目录加载相关的包?
暂无答案!
目前还没有任何答案,快来回答吧!