java - package-info.java 如何在 maven 项目中的 main 和 test 之间共享?
问题描述
在一个 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<?>
forBar.java
并尝试获取其包的注释(使用该Class#getPackage
方法)时,令我惊讶的是,我发现包以某种方式共享了目录中的注释,该src/test
目录package-info.java
位于文件旁边SomeTest.java
(否则包就是相同的)。
我还发现它也可以反过来工作,即没有package-info.java
in的类src/test
似乎package-info.java
从目录下的同一个包中共享 a src/main
。
这是特定于 Maven 项目的,还是常规的 Java 行为?有没有办法不从其他目录加载相关包?
解决方案
推荐阅读
- javascript - 使用结构指令时如何获取自动地址?
- python - 将 Excel 文件转换为 JSON 并排除列
- python - 无法在 matplotlib 中使用自定义字体
- c++ - 格式化 sqlite3_exec 结果
- python - 表格 HTML 输出在 python 中显示为单列
- c++ - fileno, errno:“否”是什么意思?(非英语母语)
- python - 使用 for 循环在 Python 中重命名数据框
- python - 分组元素后跟列表中的重复键
- c# - 如何检查单元格是否为空。c#/datagridview
- vba - 填写网络表单时,VBA 对象不支持属性或方法