过滤Maven中的源代码

时间:2010-11-05 13:19:43

标签: maven-2 filtering

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

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

我知道资源文件过滤。是否有类似的源代码工具?

1 个答案:

答案 0 :(得分:20)

几个月前过滤源代码仍然很棘手,但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>
    
  3. 完成:-)。放在src/main/java-templates中的代码会被过滤并添加到类路径中。

  4. 用法非常简单(参见example here)。

    这比Maven的配置更好地遵守约定的想法。你基本上已经取代了数十条XML线和一些黑客来干净利落地完成任务。

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