Мой проект имеет следующую структуру пакета:
src/
com.my.app.school.course
-Course.java
...
com.my.app.school.course.free
-CourseFree.java
Я использую Maven для сборки проекта, в моем pom.xml я определил maven-compiler- plugin для проверки исключения пакета со всеми его классами Java.
Сначала я попробовал следующий способ исключить пакет com.my.app.school.course.free
:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<excludes>
<exclude>**/com/my/app/school/course/free/*</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
Это работает! Я имею в виду, что после запуска mvn clean install
окончательная сборка в target/classes/ не имеет пакета com/my/app/school/course/free
.
Затем я попытался исключить пакет com.my.app.school.course
. Я просто заменяю приведенный выше тег <exclude>
значением <exclude>**/com/my/app/school/course/*</exclude>
. Я думал, что это тоже должно работать, но это не так! В target/classes/ я вижу все пакеты, ни один пакет не исключен. Почему?
Чего я хочу добиться, так это исключить пакет com.my.app.school.course
, но сохранить пакет com.my.app.school.course.free
, как этого добиться?
======== обновление ========
Я чувствую, что это может быть связано с тем, что пакет, который я пытался исключить, содержит классы Java, которые использовались в других пакетах. Я проверю свою догадку.