我们在当前项目中使用GWT 2.4版。在服务器端,我们正在使用Spring&自定义JDBC框架。
我们使用Maven作为构建工具。该应用程序已部署在JBOSS 7服务器上。
目前,我们在一个Eclipse项目中拥有所有内容。表示一个Application.gwt.xml文件和一个Spring的ApplicationContext.xml。我们有大约2000个Java文件,其中大约1500个用于GWT相关的源文件。
项目仍在增长,有更多的源文件。
我们对Java到Javac [类文件]编译时的时序很好。但是当谈到Java到JavaScript时,这是一个问题。
我们使用了GWT论坛中提到的所有黑客。
像。
但是编辑仍需要4-6分钟......或者甚至是7分钟。
有了这个问题,我想知道可以改进相同的选项。
我们正在考虑以这种方式拆分项目:
现在问题来了:
1)这有助于我们改善编译时间吗?
2)如果我们只改变模块2然后编译Module Main,那么GWT仍会编译模块1,因为它是由Module Main继承的吗?
请分享您对上述情况的看法。我们甚至尝试过GWT 2.5选项,但在性能改进方面没有帮助。
谢谢,Niraj Salot。
答案 0 :(得分:1)
我将首先回复您的第二个问题,因为它不是特定于GWT的。考虑到您的项目是这样构建的:
project-root
|- module1 (jar)
|- module2 (jar)
L moduleMain (gwt + war)
如果您在module2
中进行了一些更改,并且不想重新编译module1
,则可以使用选项-pl
将其从构建过程中跳过(命令从project-root
启动mvn clean install -pl module2,moduleMain
文件夹):
module2
这将重新编译moduleMain
,然后重新编译module1
,而无需重新编译module1
。
这有助于我们改善编译时间吗?
这取决于module2
和moduleMain
与moduleMain
相比有多大......但我对GWT的经验是,通常花费大量时间将java客户端代码编译成JavaScript的。此操作仍在您的gwt-maven-plugin
中进行,因此我认为将项目拆分为多个模块并不足以显着缩短编译时间。
此外,我建议您使用一个配置文件来控制moduleMain
内moduleMain
的激活/停用。
在<profiles>
<profile>
<id>GWTBuild</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin</artifactId>
<version>2.4.0</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>generateAsync</goal>
<goal>test</goal>
</goals>
</execution>
</executions>
<configuration>
<runTarget>com.yoururlroot/index.html</runTarget>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
的pom.xml中,将GWT插件移动到配置文件中,这样:
module2
然后,如果你只是想重建你的战争,因为module1
已经改变但没有重建mvn clean install -pl module2,moduleMain -P!GWTBuild
并且没有重新编译所有GWT的东西,只需启动:
{{1}}
在此命令中,GWT插件已停用,因此maven将仅重建战争。
告诉我这是否适合你。