3

Mavenで使用できるJavaScriptコンプレッサーを長い間検索した結果、ついに次のものが見つかりました。

        <plugin>
            <groupId>net.alchim31.maven</groupId>
            <artifactId>yuicompressor-maven-plugin</artifactId>
            <version>1.1</version>
            <executions>
                <execution>
                    <goals>
                        <goal>compress</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <jswarn>false</jswarn>
            </configuration>
        </plugin>

Eclipseの最新バージョンのm2eで、次のエラーが発生します。

ライフサイクル構成でカバーされていないプラグインの実行:net.alchim31.maven:yuicompressor-maven-plugin:1.1:compress(実行:デフォルト、フェーズ:プロセスリソース)

素晴らしい。わかりません---プラグインです。なぜm2eは私が持っている古いプラグインを単に呼び出すことができないのですか?これの何が問題になっていますか?これを修正するにはどうすればよいですか?

4

3 に答える 3

4

http://wiki.eclipse.org/M2E_plugin_execution_not_coveredを参照してください

長年の問題を解決するために、m2e 1.0では、プロジェクトビルドライフサイクルの「興味深い」フェーズ( M2Eの興味深いライフサイクルフェーズを参照)にバインドされたすべてのMavenプラグインをどう処理するかを明示的に指示する必要があります。これらの手順を「プロジェクトビルドライフサイクルマッピング」または単に「ライフサイクルマッピング」と呼びます。これは、m2eがプロジェクトpom.xmlファイルからEclipseワークスペースプロジェクトの構成およびEclipseワークスペースビルド中の動作に情報をマッピングする方法を定義するためです。

プロジェクトビルドのライフサイクルマッピング構成は、Eclipseプラグインによって提供されるプロジェクトpom.xmlで指定できます。また、m2eに付属する一般的に使用されるMavenプラグインのデフォルト構成もあります。これらを「ライフサイクルマッピングメタデータソース」と呼びます。m2eは、マッピングメタデータソースのいずれにもライフサイクルマッピングがないすべてのプラグイン実行に対して、以下のようなエラーマーカーを作成します。

Plugin execution not covered by lifecycle configuration:
org.apache.maven.plugins:maven-antrun-plugin:1.3:run
   (execution: generate-sources-input, phase: generate-sources)

m2eは、プラグインgroupId、artifactId、バージョン範囲、および目標の組み合わせを使用して、プラグインの実行をアクションに一致させます。プラグインの実行でm2eに指示できる基本的なアクションは3つあります。無視し、実行し、プロジェクトコンフィギュレーターに委任します。

于 2011-06-25T00:59:36.403 に答える
3

周りを検索すると、そのエラーを抑制する方法を示すリンクがたくさん見つかります。ただし、実際にデフォルトのMavenProjectBuilderでEclipse内でこれらのプラグインを実行する方法を見つけました。<ignore>重要なのは、多くの提案で見つけたものをに変更することです<execute>。これをpomに追加すると、ユーザーがjavascriptリソースを保存するだけで、自動集計、圧縮、およびデプロイが可能になります。

<pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.eclipse.m2e</groupId>
                <artifactId>lifecycle-mapping</artifactId>
                <version>1.0.0</version>
                <configuration>
                    <lifecycleMappingMetadata>
                        <pluginExecutions>
                            <pluginExecution>
                                <pluginExecutionFilter>
                                    <groupId>
                                        net.alchim31.maven
                                    </groupId>
                                    <artifactId>
                                        yuicompressor-maven-plugin
                                    </artifactId>
                                    <versionRange>
                                        [1.1,)
                                    </versionRange>
                                    <goals>
                                        <goal>compress</goal>
                                    </goals>
                                </pluginExecutionFilter>
                                <action>
                                    <execute></execute>
                                </action>
                            </pluginExecution>
                        </pluginExecutions>
                    </lifecycleMappingMetadata>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>
于 2012-08-22T04:02:49.387 に答える
1

たぶんあなたはIDとフェーズを提供する必要がありますか?

<plugin>
    <groupId>net.alchim31.maven</groupId>
    <artifactId>yuicompressor-maven-plugin</artifactId>
    <version>1.1</version>
    <executions>
        <execution>
            <id>compressyui</id>
            <phase>process-resources</phase>
            <goals>
                <goal>compress</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <jswarn>false</jswarn>
    </configuration>
</plugin>

少なくとも、この構成ではそのメッセージは表示されません。

于 2011-05-15T17:12:32.087 に答える