I'm using maven processor plugin to generate sources.
<!-- 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>
The problem is that I have generated classes that are dependent on these generated classes.
E.g.
com.project.client.application.event.DevInfoEvent.java
has a classmember of DevInfoDto
com.project.shared.dto.generated.dev.DevInfoDto.java
Both files are generated, but the problem is the DevInfoEvent is generated sooner, therefore I got an error that it can't resolve the DevInfoDto
When I run the generate-sources
from eclipse for the second time, it is ok, because the DevInfoDto is already generated. But this behavior is not good me. (Don't want to run compile
on the CI server twice).
Is there a way to tell maven processor plugin
some order, in which it should generate classes?
I'd make
com.project.client
andcom.project.shared
two different Maven projects, declareshared
as a dependency ofclient
and aggregate them as<module>
s in a parent project. Such, when building this parent project, Maven's reactor takes care of the proper build order.This also makes sense in another way:
shared
functionality is probably different toclient
functionality.