m2e中未涵盖yuicompressor插件执行

时间:2011-05-15 14:17:55

标签: maven m2eclipse yui-compressor

经过长时间搜索我可以在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不能简单地调用我的任何旧插件?这个怎么了?我该如何解决这个问题?

3 个答案:

答案 0 :(得分:4)

请参阅http://wiki.eclipse.org/M2E_plugin_execution_not_covered

  

要解决一些长期存在的问题,   m2e 1.0需要明确的指示   如何处理所有Maven插件   绑定到“有趣”阶段(见M2E interesting lifecycle phases)   项目构建生命周期。我们称之为   说明“项目构建生命周期   映射“或简单地”生命周期映射“   因为他们定义m2e映射的方式   项目pom.xml文件中的信息   到Eclipse工作区项目   期间的配置和行为   Eclipse工作区构建。

     

项目构建生命周期映射   配置可以在。中指定   项目pom.xml,由   Eclipse插件也有   一些默认配置   常用的Maven插件出货   与m2e。我们将这些称为“生命周期   映射元数据源“.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有三个基本动作   可以指示使用插件   执行 - 忽略执行和   委托项目配置程序

答案 1 :(得分:3)

如果您四处搜索,您会发现很多链接显示如何抑制该错误。但是,我找到了一种方法来让默认的Maven Project Builder在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>

答案 2 :(得分: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>

至少我没有使用此配置获得该消息。