6

私はmaven-jaxb2-pluginを持っています。jaxbオブジェクトを生成し、それを他のクラスのプロジェクトで参照します。jaxbプラグインとコンパイラプラグインをpluginManagementタグの下に配置しました。Mavenは生成フェーズよりも最初にコンパイルフェーズを実行しています。pluginManagementタグを削除した場合と同様に正常に動作し、最初の生成フェーズが実行され、すべてのjaxbオブジェクトが生成されてから、コンパイルフェーズが実行されます。pluginManagementタグが原因で、プロジェクトがコンパイルされません。pluginManagementタグは、子pomがこれらのプラグインを参照できるように、親pom内のすべてのプラグインを定義するためにのみ使用されますか?私のプロジェクトはマルチモジュールプロジェクトではありません。

   <pluginManagement>       
      <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>

        <plugin>
            <groupId>org.jvnet.jaxb2.maven2</groupId>
            <artifactId>maven-jaxb2-plugin</artifactId>
            <executions>
                <execution>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <schemaDirectory>${basedir}/src/main/resources/schema</schemaDirectory>
                <generatePackage>com.common.dto</generatePackage>
                <schemaIncludes>
                    <include>*.xsd</include>
                </schemaIncludes>
                <removeOldOutput>false</removeOldOutput>
                <strict>false</strict>
                <verbose>true</verbose>
                <forceRegenerate>true</forceRegenerate>
                <extension>true</extension>
            </configuration>
        </plugin>
    </plugins>
 </pluginManagement>
4

1 に答える 1

8

はい、<pluginManagement>はすぐに使用できる構成を作成するために使用されますが、プラグインを自動的にアクティブ化するわけではありません。プラグインを含める必要があります。つまり、実際には、<pluginManagement>は、親pomでプラグインの構成と依存関係の管理を一元化するのに非常に役立ちます。

事実上、適切なモジュールでプラグインを「宣言」することは、はるかにコンパクトな構文の恩恵を受けます。

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
    </plugin>

    <plugin>
        <groupId>org.jvnet.jaxb2.maven2</groupId>
        <artifactId>maven-jaxb2-plugin</artifactId>
    </plugin>
</plugins>
于 2012-08-24T23:14:57.367 に答える