我正在将一个较大的 Ant 构建转换为 Maven。作为 Ant 构建的一部分,我们有几个步骤通过调用项目的类之一来创建 Java 类,简化为:
javac SomeGenerator.java
java SomeGenerator generated # generate classes in generated/
javac generated/*.java
我已将每个生成器拆分到其自己的 Maven 模块中,但我遇到了无法运行生成器的问题,因为它尚未在 Maven 模块中编译。generate-sources
phase.
我尝试过类似的东西
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.1.1</version>
<executions>
<execution>
<id>generate-model</id>
<goals>
<goal>java</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<mainClass>DTOGenerator</mainClass>
<arguments>
<argument>${model.generated.dir}</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
遗憾的是,由于上述原因,这不起作用。将代码生成器分成两个项目,一个用于编译生成器,另一个用于生成 DTO 似乎有些过分了。
还有哪些替代方案?
使用 Maven 2.2.1。
您可以在generate-sources阶段执行maven-compile-plugin。只需在现有执行之前添加另一个执行并配置它,以便它只获取生成器的源。
或者将项目一分为二:使用单独的 POM 构建生成器,并将生成器库作为生成源的 POM 的依赖项包含在内。
就我个人而言,我会拆分该项目。保持构建文件更干净且更易于维护。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)