1

いくつかの生成されたファイルを含む Maven プロジェクト:

my.package.R // generated from resources
my.package.ClassThatGeneratesRFromResources
my.package.AClassThatUsesR
my.package.AnotherClassThatUsesR
my.package.YetAnotherClassThatUsesR

ビルドするときは、ClassThatGeneratesRFromResources をコンパイルし、それを実行して (R.java クラスを生成)、他のすべてをまとめてコンパイルしたいと考えています。

モジュール、リアクター、および独自の小さなモジュールで ClassThatGeneratesRFromResources を分離することで、これを機能させることができます。しかし、なぜ私の見苦しい、ぎこちない解決策がうまくいかないのだろうか。これが私の現在のPOMです:

<build>
    <plugins>
        <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-compiler-plugin</artifactId>
            <executions>
                <execution>
                    <id>
                        generate-r-file-creator
                    </id>
                    <configuration>
                        <phase>generate-sources</phase>
                        <goal>compile</goal>
                        <includes>
                          <include>my/package/ClassThatGeneratesRFromResources.java</include>
                       </includes>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.1.1</version>                
            <executions>
                <execution>
                    <id>generate-r-files</id>
                    <phase>process-sources</phase>
                    <goals>
                        <goal>java</goal>
                    </goals>
                    <configuration>
                        <mainClass>my.package.ClassThatGeneratesRFromResources</mainClass>
                        <arguments>
                           <argument>${basedir}</argument>
                        </arguments>
                    </configuration>
                </execution>
            </executions>
        </plugin>        
    </plugins>
</build>

その結果、最初のコンパイラの実行が失敗し、コード生成の実行も失敗します (ClassThatGeneratesRFromResources がコンパイルされていないため)。コンパイラ プラグインがトリガーされないのはなぜですか? これを修正するにはどうすればよいですか (モジュラーにする以外に)?

4

0 に答える 0