我的项目具有以下包结构:
src/
com.my.app.school.course
-Course.java
...
com.my.app.school.course.free
-CourseFree.java
我使用Maven来构建项目,在我的pom.xml中,我定义了maven-编译器-插件 http://maven.apache.org/plugins/maven-compiler-plugin/测试排除包含所有 java 类的包。
我首先尝试以下方式exclude包裹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
。我只是简单地replace以上<exclude>
带有值的标签<exclude>**/com/my/app/school/course/*</exclude>
。我认为它也应该有效,但事实并非如此!在 target/classes/ 下,我看到所有包,没有排除任何包。为什么?
我想要实现的是排除包com.my.app.school.course
但保留包裹com.my.app.school.course.free
,如何实现这一目标?
========更新========
我觉得这可能是因为我试图排除的包包含已在其他包中使用的 java 类。我会验证我的猜测。
好的,我找到了排除不起作用的原因。
因为我试图排除的包下的一些java类已经在其他包中使用了。似乎 maven-compiler-plugin 很聪明地检测到这一点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)