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.clientandcom.project.sharedtwo different Maven projects, declaresharedas a dependency ofclientand 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:
sharedfunctionality is probably different toclientfunctionality.