3

m2e は私の pom セクションが好きではありません: プラグインの実行はライフサイクル構成でカバーされていません。

オリジナルPOM

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>jasperreports-maven-plugin</artifactId>
            <version>1.0-beta-2</version>
            <configuration>
                <sourceFileExt>.xml</sourceFileExt>
                <sourceDirectory>${basedir}/src/main/resources/jasper</sourceDirectory>
                <outputDirectory>${basedir}/src/main/resources/jasper</outputDirectory>
            </configuration>
            <executions>
                <execution>
                    <phase>compile</phase>
                    <goals>
                        <goal>compile-reports</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

修正POM

このフォーラムで調査した後、次のように変更しました。

    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.eclipse.m2e</groupId>
                <artifactId>lifecycle-mapping</artifactId>
                <version>1.0.0</version>
                <configuration>
                    <lifecycleMappingMetadata>
                        <pluginExecutions>
                            <pluginExecution>
                                <pluginExecutionFilter>
                                    <groupId>org.codehaus.mojo</groupId>
                                    <artifactId>jasperreports-maven-plugin</artifactId>
                                    <versionRange>[1.0,)</versionRange>                                     
                                    <goals>
                                        <goal>compile-reports</goal>
                                    </goals>
                                </pluginExecutionFilter>
                                <action>
                                    <execute />
                                </action>
                            </pluginExecution>

                        </pluginExecutions>
                    </lifecycleMappingMetadata>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>

しかし、ソースディレクトリとターゲットディレクトリをどこに指定するのでしょうか? コンパイルするたびに、jasper-report プラグインに対して何もしませんでした。

4

2 に答える 2

3

あなたが持っていたエラーは、m2e が jasper プラグインを認識していないことが原因でした。これは、m2e v1.00 がかなり最近のものであり、ほとんどのプラグイン用のコネクタがないため、非常に一般的です。私がいつもしていることは、クイックフィックスのEclipseの提案に従って、エラーを無視することです。これを行うと、新しいコードに、この変更は maven には影響せず、m2e のみに影響するというコメントが表示されます。

それとは別に、プラグインの構成 (最初のコード セクションにあるもの) をそのままにしておいてください。これは、試してみて動作したと想定しています。
つまり、m2e エラーの修正は、プラグインに設定した実際の構成に干渉してはなりません。

于 2012-09-19T17:17:45.943 に答える
0

M2E 構成のバージョン範囲がそのプラグインに対して間違っています。次のようにする必要があります。

<versionRange>[1.0-beta-2,)</versionRange>

これは、私のために機能するプラグインの構成です (私の .jrxml ファイルは src/main/jasperreports にあります):

<properties>
    <jasperreports.version>5.0.0</jasperreports.version>
</properties>

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>jasperreports-maven-plugin</artifactId>
    <configuration>
        <outputDirectory>${project.build.directory}/jasper</outputDirectory>
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>compile-reports</goal>
            </goals>
        </execution>
    </executions>
    <dependencies>
        <dependency>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>jasperreports-maven-plugin</artifactId>
            <version>1.0-beta-2</version>
            <exclusions>
                <exclusion>
                    <groupId>net.sf.jasperreports</groupId>
                    <artifactId>jasperreports</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>net.sf.jasperreports</groupId>
            <artifactId>jasperreports</artifactId>
            <version>${jasperreports.version}</version>
        </dependency>
        <dependency>
            <groupId>com.lowagie</groupId>
            <artifactId>itext</artifactId>
            <version>4.2.0</version>
        </dependency>
    </dependencies>
</plugin>
于 2012-12-19T10:58:39.557 に答える