Ümi*_*mit 6 eclipse gwt m2eclipse maven
最近我将我的GWT网络应用程序(GWT 2.4.0)转换为maven项目.
我正在使用maven 2.2.1,gwt-maven插件(2.4.0),Eclipse Indigo(3.7)和m2eclipse插件.
依赖关系和一般配置看起来很好,因为web-app编译时没有任何问题,也可以在生产模式下工作.
这同样适用于托管模式.
但是我有一个奇怪的行为:当我更改Java/GWT源文件中的单行时,Maven Project Builder会调用此行并且此步骤需要很长时间(大约10秒),并且在此期间eclipse有时会变得无法使用.
这是m2eclipse的正常行为吗?
如果是的话,有什么方法可以加快速度吗?
注意:我必须为m2eclipse配置生命周期插件.这是pom文件的重要部分:
<build>
<!-- Generate compiled stuff in the folder used for developing mode -->
<outputDirectory>${webappDirectory}/WEB-INF/classes</outputDirectory>
<plugins>
<!-- GWT Maven Plugin -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin</artifactId>
<version>2.4.0</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>test</goal>
</goals>
</execution>
</executions>
<!-- Plugin configuration. There are many available options, see gwt-maven-plugin
documentation at codehaus.org -->
<configuration>
<runTarget>index.html</runTarget>
<hostedWebapp>${webappDirectory}</hostedWebapp>
<i18nMessagesBundle>com.gmi.nordborglab.testapp.client.Messages</i18nMessagesBundle>
</configuration>
</plugin>
<!-- Copy static web files before executing gwt:run -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>exploded</goal>
</goals>
</execution>
</executions>
<configuration>
<webappDirectory>${webappDirectory}</webappDirectory>
</configuration>
</plugin>
</plugins>
<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>gwt-maven-plugin</artifactId>
<versionRange>[2.4.0,)</versionRange>
<goals>
<goal>resources</goal>
<goal>compile</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute />
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<versionRange>[2.1.1,)</versionRange>
<goals>
<goal>exploded</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
Run Code Online (Sandbox Code Playgroud)
Fre*_*con 14
这完美地说明了为什么m2e默认情况下不允许任何"未知"插件在增量构建上运行(http://wiki.eclipse.org/M2E_plugin_execution_not_covered#Background).大多数maven插件不适合增量构建,并且无论何时调用它们都会进行完整构建(作为奖励,您可能会遇到类加载器泄漏).
在您的插件管理部分中,您指定应执行gwt:resources,gwt:compile和war:爆炸.默认情况下,它们是在增量构建上执行的,这意味着每次资源都会发生变化.由于这些目标/插件未针对增量构建进行优化,因此需要一段时间才能完成.
如果你想加快速度,你可以告诉m2e只在完整版本(即项目清理后)上执行它们
<execute>
<runOnIncremental>false</runOnIncremental>
</execute>
Run Code Online (Sandbox Code Playgroud)
然后,手动执行eclipse清理构建将自动触发它们的执行.请注意,JDT有时会决定将增量构建推广到完整构建.
我相信(但可能是错误的),如果你使用谷歌Eclipse插件,你可以完全忽略gwt:resources和gwt:compile(通过用<ignore>替换<execute>).
Maven构建的原因很可能是一个启用的Maven项目构建器(项目属性>构建器).
您可以禁用它 - 只要您选择了Java Builder,Eclipse将继续编译已编辑的文件.
好吧,我通常不勾选:
项目| 自动建立
我只是讨厌它一直在编译。
| 归档时间: |
|
| 查看次数: |
14207 次 |
| 最近记录: |