如何在Eclipse中保存Maven“编译”目标?

时间:2010-04-13 19:06:09

标签: eclipse maven-2 m2eclipse

我有一个带有JavaScript代码的Maven项目。有一个特殊的javascript编译器插件连接到pom.xml中的编译目标。因此,当我输入“mvn compile”时,src / main / javascript中的JavaScript源代码将被编译(压缩和混淆)并保存到target / classes目录中。在命令行上,这很有效。

但是现在我想通过使用带有m2eclipse插件的Eclipse来简化开发。每当我更改JavaScript文件时,我都希望Eclipse调用编译目标。我怎样才能做到这一点?当我保存JavaScript文件时,我只是在maven控制台中看到一个“AUTO_BUILD”日志记录行,就是这样。

在项目首选项中,可以配置生命周期映射。但出于某种原因,我只能将自定义目标添加到“清理后”和“资源已更改”。当我将“compile”目标添加到“resource changed”生命周期映射时,我会在更改资源时编译JavaScript文件。所以我可以把我的JavaScript文件放到资源文件夹中,它会起作用,但听起来很难看。

当我告诉Eclipse“清理”我的项目时,它也在工作。然后调用编译目标目标。所以功能就在那里我只想在保存JavaScript文件时执行它。这必须以某种方式可能吗?

任何提示?

2 个答案:

答案 0 :(得分:10)

  

在项目首选项中,可以配置生命周期映射。但出于某种原因,我只能将自定义目标添加到“清理后”和“资源已更改”。当我将“compile”目标添加到“resource changed”生命周期映射时,我会在更改资源时编译JavaScript文件。所以我可以把我的JavaScript文件放到资源文件夹中,它会起作用,但听起来很难看。

正如您所注意到的,Eclipse中增量构建的默认目标是process-resourcesresources:testResources。就个人而言,我不认为将js文件放在资源下是丑陋的,我只想绑定process-resources上的javascript插件。

  

当我告诉Eclipse“清理”我的项目时,它也在工作。然后调用编译目标目标。

在完全构建(从Eclipse中删除)之后,目标运行是process-test-resources,这实际上是包含compile阶段的构建生命周期阶段,这就是为什么compile被调用的原因从Eclipse清理项目。但这并不能解决您的问题(在保存时运行插件)。


正如我所说,我只是把js文件放在资源下面。但是可能还有另一种选择:在项目中添加另一个Builder。在项目中右键单击,然后属性>建筑商>新> Maven Build 并将您的插件目标定义为在自动构建目标期间运行的目标(更改或删除其他目标以满足您的需求):

alt text http://img694.imageshack.us/img694/2382/screenshot003wo.png

但我更喜欢其他方法。

答案 1 :(得分:2)

因为@ pascal-thivent答案已过时(如评论中所述)并由@akostadinov https://www.eclipse.org/m2e/documentation/m2e-execution-not-covered.html暗示:

您必须添加有效的maven生命周期操作

maven install plugin 在本地自动部署的jar示例:

<build>
    <!-- ... -->

    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.eclipse.m2e</groupId>
                <artifactId>lifecycle-mapping</artifactId>
                <version>1.0.0</version>
                <configuration>
                    <lifecycleMappingMetadata>
                        <pluginExecutions>

                            <pluginExecution>
                                <pluginExecutionFilter>
                                    <groupId>org.apache.maven.plugins</groupId>
                                    <artifactId>maven-jar-plugin</artifactId>
                                    <versionRange>[2.0,)</versionRange>
                                    <goals>
                                        <goal>jar</goal>
                                    </goals>
                                </pluginExecutionFilter>
                                <action>
                                    <execute>
                                        <runOnConfiguration>true</runOnConfiguration>
                                        <runOnIncremental>true</runOnIncremental>
                                    </execute>
                                </action>
                            </pluginExecution>

                            <pluginExecution>
                                <pluginExecutionFilter>
                                    <groupId>org.apache.maven.plugins</groupId>
                                    <artifactId>maven-install-plugin</artifactId>
                                    <versionRange>[2.5.0,)</versionRange>
                                    <goals>
                                        <goal>install</goal>
                                    </goals>
                                </pluginExecutionFilter>
                                <action>
                                    <execute>
                                        <runOnConfiguration>true</runOnConfiguration>
                                        <runOnIncremental>true</runOnIncremental>
                                    </execute>
                                </action>
                            </pluginExecution>

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

提示:与Maven Project Builder is invoked every time I change a source file (GWT)有关并作为警告:安装通常包括测试,如果您已将它们包含在正常的maven构建周期中

相关问题