我写了一个小的BeanShell脚本,用源代码中的实际行号替换"__LINE__"
。它在Ant中运行良好。
我正在寻找一种在Maven中过滤源代码的方法,以便我的BeanShell脚本可以生成一个新的源代码目录,然后进行编译。
我知道资源文件过滤。是否有类似的源代码工具?
答案 0 :(得分:20)
几个月前过滤源代码仍然很棘手,但MOJO项目现在有一个标准的插件。您现在可以使用经典插件声明来完成此操作。
要过滤源代码(例如,当您希望在Java代码中使用常量来检索项目版本或artifactId时),现在应该使用templating-maven-plugin。
在src/main/java-templates
下构建应该过滤的代码,就像通常在src/main/java
下针对非过滤源进行的那样。在代码中使用${project.version}
或来自POM的任何属性。
只需输入:
<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>
完成:-)。放在src/main/java-templates
中的代码会被过滤并添加到类路径中。
用法非常简单(参见example here)。
这比Maven的配置更好地遵守约定的想法。你基本上已经取代了数十条XML线和一些黑客来干净利落地完成任务。
旁注:例如,这适用于Eclipse。