我正在使用maven处理器插件来生成源代码。
<!-- Run annotation processors on src/home/java sources -->
<plugin>
<groupId>org.bsc.maven</groupId>
<artifactId>maven-processor-plugin</artifactId>
<version>2.2.4</version>
<executions>
<execution>
<id>process</id>
<goals>
<goal>process</goal>
</goals>
<phase>generate-sources</phase>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>com.gwtplatform</groupId>
<artifactId>gwtp-processors</artifactId>
<version>${gwtp.version}</version>
</dependency>
</dependencies>
</plugin>
问题是我生成的类依赖于这些生成的类。
例如
com.project.client.application.event.DevInfoEvent.java
有一个DevInfoDto的班级成员 com.project.shared.dto.generated.dev.DevInfoDto.java
两个文件都已生成,但问题是DevInfoEvent生成得更快,因此我收到一个错误,它无法解析DevInfoDto
当我第二次从 eclipse 运行generate-sources
时,没关系,因为 DevInfoDto 已经生成了。但这种行为对我不好。(不想在 CI 服务器上运行两次compile
)。
有没有办法告诉maven processor plugin
它应该生成类的顺序?
我会com.project.client
并com.project.shared
两个不同的Maven项目,将shared
声明为client
的依赖项,并将它们聚合为父项目中的<module>
。因此,在构建此父项目时,Maven的反应堆会负责正确的构建顺序。
这在另一个方面也是有意义的:shared
功能可能与client
功能不同。