使用maven-compiler-plugin排除包适用于一个包,但不适用于另一个包

Lee*_*fin 6 java maven-3 maven maven-compiler-plugin

我的项目有以下包结构:

src/
  com.my.app.school.course
    -Course.java
    ...

  com.my.app.school.course.free
    -CourseFree.java  
Run Code Online (Sandbox Code Playgroud)

我使用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>
Run Code Online (Sandbox Code Playgroud)

有用!我的意思是在运行之后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但保留pacakge com.my.app.school.course.free,如何实现这一目标?

========更新========

我觉得这可能是因为我试图排除的包包含已在其他包中使用的java类.我会核实我的猜测.

Lee*_*fin 8

好的,我找到了排除不起作用的原因.

因为我试图排除的包下的一些java类已经在其他包中使用过.似乎maven-compiler-plugin很聪明地检测到它.

  • 有没有办法强制排除? (11认同)