【发布时间】:2012-06-15 13:29:45
【问题描述】:
我只想编译源目录中选定的文件或目录(包括子目录)。我很确定我可以使用maven-compiler-plugin 的配置中的<includes> 来做到这一点,但它似乎不像我预期的那样工作,因为它仍然将所有类编译成target/classes。真正奇怪的是,Maven 输出表明该设置确实有效,因为:
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<includes>
<include>com/example/dao/bean/*.java</include>
</includes>
</configuration>
</plugin>
我有:
[INFO] Compiling 1 source file to c:\Projects\test\target\classes
但我没有编译器的配置:
[INFO] Compiling 14 source file to c:\Projects\test\target\classes
然而,正如我所提到的,在这两种情况下,所有 14 个类都编译为 target/classes。您能否解释一下或建议另一种仅编译选定文件的解决方案?
【问题讨论】:
-
您记得在测试之前进行清洁吗?
-
你之前试过排除*/吗?我猜默认情况下,maven 包含所有内容,您必须排除。您是否正在使用带有“自动构建”选项的 IDE(例如 Eclipse)?
-
是的,我在编译之前进行了清理。是的,我试图排除
**/*.java。这次我不使用IDE。只是简单的pom.xml和控制台。 -
你是如何在控制台上执行 Maven 的?你只是简单地运行'mvn clean compile'还是别的什么?
-
我的第一个问题是:为什么你喜欢在你的项目中只编译有限数量的类?听起来您必须创建多个模块而不是一个?