预处理源代码作为maven构建的一部分

izb*_*izb 15 java build-process maven-2

我有很多需要自定义预处理的Java源代码.我想摆脱它,但现在不可行,所以我坚持下去.鉴于我有一个不应该存在的不幸问题,我如何使用maven解决它?

(就完整的故事而言,我正在用一个基于python的构建系统替换一个基于python的构建系统,所以请一次改进.修复非标准源代码更难,稍后会出现.)

是否可以使用任何现有的Maven插件在编译期间实际更改源文件?(显然只保留原始的,未经处理的代码)

需要说明的是,通过预处理,我的意思是预处理与天线相同,或者C编译器会对代码进行预处理,而且我认为它是完全专有的,看起来就像C或天线预处理一样.

Tra*_*ell 9

这是非常可行的事情,我在过去做过非常相似的事情.

我的一个项目的例子,我使用antrun插件执行外部程序来处理源:

  <build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-antrun-plugin</artifactId>
      <executions>
        <execution>
          <id>process-sources</id>
          <phase>process-sources</phase>
          <configuration>
            <tasks>
               <!-- Put the code to run the program here -->
            </tasks>
          </configuration>
          <goals>
            <goal>run</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>
Run Code Online (Sandbox Code Playgroud)

请注意标记,其中我指示运行它的阶段.Maven生命周期的文档就在这里.另一个选择是实际编写自己的Maven插件来执行此操作.它有点复杂,但也很可行.您仍将按照我在此处记录的内容进行配置.


小智 9

有一个支持MAVEN的Java预处理器:java-comment-preprocessor