过滤Maven中的源代码

Ral*_*lph 13 maven-2 filtering

我写了一个小的BeanShell脚本,它取代"__LINE__"了源代码中的实际行号.它在Ant中运行良好.

我正在寻找一种方法来过滤Maven中的源代码,以便我的BeanShell脚本可以生成一个新的源代码目录,然后进行编译.

我知道资源文件过滤.是否有类似的源代码设施?

Bap*_*hus 22

几个月前过滤源代码仍然很棘手,但MOJO项目现在有一个标准的插件.您现在可以使用经典插件声明来完成此操作.

要过滤源代码(例如,当您希望在Java代码中使用常量来检索项目版本或artifactId时),您现在应该使用templating-maven-plugin.

  1. 在构建过程中放置​​应该过滤的代码,src/main/java-templates就像通常src/main/java对非过滤源一样.${project.version}在代码中使用来自POM的任何属性.

  2. 只需添加以下内容:

    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>templating-maven-plugin</artifactId>
      <version>1.0-alpha-3</version> <!-- Be sure to use the last version. Check on the website's plugin -->
      <executions>
          <execution>
          <id>filter-src</id>
          <goals>
              <goal>filter-sources</goal>
          </goals>
          </execution>
      </executions>
    </plugin>
    
    Run Code Online (Sandbox Code Playgroud)
  3. 完成 :-).您放入的代码将src/main/java-templates被过滤并添加到类路径中.

用法非常简单(参见此处示例).

这比Maven的配置更好地遵循约定的想法.你基本上是替换了数十条XML线和一些黑客来干净利落地完成任务.

旁注:例如,这适用于Eclipse.