プロジェクトからインターフェイス A を読み取り、そこから新しいインターフェイス B を生成する単純なコード ジェネレーター G があります。したがって、私はこれを達成する必要があります:
- コンパイルA
- Gを実行
- コンパイル B
ステップ 1 と 3 は maven-compiler-plugin によって処理されますが、ステップ 2 では maven-exec-plugin を使用します。現在、ステップ 1 と 2 はうまく機能していますが、コンパイラ プラグインを再度実行して、新しく生成されたバージョンの B をコンパイルする方法がわかりません。
これはmavenで可能ですか、それとも私の問題を解決する別のアプローチがありますか?
解決:
khmarbaise の回答に基づいて、これを pom.xml に追加して、generate-sourcesフェーズで最初のコンパイルを実行し、 process-sourcesフェーズでコード生成を実行して、生成されたクラスをコンパイルフェーズで使用できるようにします。
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<executions>
<execution>
<id>pre-compile</id>
<phase>generate-sources</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<phase>process-sources</phase>
<goals>
<goal>java</goal>
</goals>
<configuration>
<mainClass>com.example.MyCodeGenerator</mainClass>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>