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 如何在 Eclipse 工作区构建期间将信息从项目 pom.xml 文件映射到 Eclipse 工作区项目配置和行为。

项目构建生命周期映射配置可以在项目 pom.xml 中指定,由 Eclipse 插件贡献,并且对于一些常用的 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 执行插件执行三个基本操作 -忽略执行和委托给项目配置器。

于 2011-06-25T00:59:36.403 回答
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>
于 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 回答