1

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<?>forをロードし、Bar.java(メソッドを使用して)そのパッケージの注釈を取得しようとしたときClass#getPackage、驚いたことに、パッケージがファイルの隣にあるsrc/testディレクトリから注釈を共有していることがわかりました(そうでない場合、パッケージは同じ)。package-info.javaSomeTest.java

また、逆の方法でも機能することがわかりました。つまり、package-info.javainのないクラスは、ディレクトリの下の同じパッケージのsrc/testa を共有しているようです。package-info.javasrc/main

これは Maven プロジェクトに固有のものですか、それとも通常の Java の動作ですか? 関連するパッケージを他のディレクトリからロードしない方法はありますか?

4

0 に答える 0