我需要生成一些 Java 源代码,然后由 Maven 编译。问题是生成这些源代码的遗留代码是用 Java 编写的。使用的解决方案(解决方法)是:
- 带有生成 Java 源代码的项目 A
- 项目 B 依赖于项目 A 并在 Maven 中调用 antrun 来执行项目 A 中的类
当你构建项目 B 时,Maven 会:
- 编译项目 A(生成源代码的代码)并执行项目 A 的 pom.xml 告诉它执行的任何其他操作。
- antrun 这些类(根据项目 B 的 pom.xml 的要求) - 因此将生成源并将其添加到项目 B
- 编译项目 B 源
这是因为 Antrun 要求项目 A 中的类在执行时已经被编译。然而,这是一个丑陋的解决方案,项目 A 和 B 实际上应该只是一个项目。我知道我应该使用:
<phase>generate-sources</phase>
我看到了一个 Groovy 的例子(http://blog.retep.org/2009/11/07/using-groovy-to-generate-java-sources-in-maven/),但我想知道是否有任何更简单的方法来做到这一点,同时将所有东西都放在一个项目中,而不必将代码生成从 Java 更改为 groovy 或其他东西。
谢谢。