我们的应用程序包括一些自动生成的源文件,以及应用程序本身。这需要花费大量时间,因此正常构建过程中不包含此源代码。相反,这些文件包含在VCS存储库中,只有在真正需要时才会重新生成(大约每月一次)。
基本上,主程序的构建过程如下所示:
编译文件A,B,C,D和X
在Ant中,还有一个基本上是
的目标编译文件A,B和E,使用结果程序的输出重新生成X
然后,生成的X被提交到VCS存储库,并在主程序的许多连续构建中使用。此目标不是主构建过程的一部分,只能手动运行。
我如何使用Maven来解决这个问题?如果可能的话,我最好避免使用子模块。
答案 0 :(得分:0)
结束创建运行该工具的单独Python脚本。将以下配置位添加到pom.xml
以避免默认构建工具(脚本确保首先调用mvn compile -P build-tools
):
<properties>
<java.source.excludes>**/tools/**</java.source.excludes>
</properties>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<excludes>
<exclude>${java.source.excludes}</exclude>
</excludes>
</configuration>
</plugin>
<profiles>
<profile>
<id>build-tools</id>
<properties>
<!-- Has to be non-empty, or else Maven dies with an NPE... -->
<java.source.excludes>we/include/everything/unless/you/named/a/file/like/this</java.source.excludes>
</properties>
</profile>
</profiles>