Deklaracja importu na żądanie tylko z podpakietami

Związane z :Jak mogę skompilować „import pack. *” Z ant / javac, gdy nie ma takich klas?

Załóżmy, że mamy daną strukturę pakietu

parent
|
---a
---b

gdzie pakietparent zawiera tylko dwa podpakietya ib (żadna klasa nie znajduje się pod pakietemparent).

Kodimport parent.*, umieszczony w opakowaniu innym niżparent, skompilowany z Maven (tj.javac) zgłasza błąd podczas kompilacji. Błąd jest:

rodzic pakietu nie istnieje

Przejrzałem specyfikację języka Java dotyczącą takiego przypadku (deklaracja import-na-żądanie, w której żadne typy nie są faktycznie importowane).Punkt 7.5.2 JLS o deklaracji import-na-żądanie nie wydaje się określać tego zachowania.

Czy to błądjavac? Nie pytam, jak obejść błąd kompilacji. Chciałbym wiedzieć dlaczegojavac zgłasza błąd, ponieważ nie mogę znaleźć żadnego odniesienia w JLS, które powinno; prowadząc mnie do przekonania, że ​​to może być błąd.

Testowałem z JDK 1.4, 1.6, 1.7 i 1.8, błąd jest taki sam.

Na marginesie, nie ma błędu kompilacji z tym samym kodem w Eclipse (testowany z Eclipse Indigo, Juno, Luna i Mars).

NB: Zetknąłem się z tym zachowaniem podczas „mavenizing” (starego) istniejącego projektu, który polegał tylko na kompilatorze Eclipse. Zajęło mi trochę czasu, aby stwierdzić, że to była główna przyczyna błędu kompilacji, który otrzymałem.

questionAnswers(1)

yourAnswerToTheQuestion