在正常构建过程之外使用Maven生成源文件

时间:2015-05-11 09:57:55

标签: maven

我们的应用程序包括一些自动生成的源文件,以及应用程序本身。这需要花费大量时间,因此正常构建过程中不包含此源代码。相反,这些文件包含在VCS存储库中,只有在真正需要时才会重新生成(大约每月一次)。

基本上,主程序的构建过程如下所示:

  

编译文件A,B,C,D和X

在Ant中,还有一个基本上是

的目标
  

编译文件A,B和E,使用结果程序的输出重新生成X

然后,生成的X被提交到VCS存储库,并在主程序的许多连续构建中使用。此目标不是主构建过程的一部分,只能手动运行。

我如何使用Maven来解决这个问题?如果可能的话,我最好避免使用子模块。

1 个答案:

答案 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>