gwt-maven-plugin在IDE和命令行中的不同行为

时间:2019-02-28 23:03:01

标签: java gwt gwt-maven-plugin

我正在使用gwt-maven-plugin,并且自最近以来,我的IDE(日蚀氧气)中出现了奇怪的错误。经过研究后,我意识到gwt-maven-plugin在eclipse或命令行中运行时的行为有所不同。 在命令行上,一切正常,并且gwt:css创建一个具有正确可见性的接口(公共)。但是,当我在eclipse中运行它时,public丢失了,因此我遇到了eclipse中的所有错误,因为这些类不再可以访问该接口了。我正在使用gwt 2.6.1,JDK 1.8.0(但构建本身是1.6)和maven 3.5.2。

任何主意是什么原因造成的?

<plugin>
 <groupId>org.codehaus.mojo</groupId>
 <artifactId>gwt-maven-plugin</artifactId>
 <executions>
  <execution>
   <goals>
    <goal>compile</goal>
    <goal>test</goal>
    <goal>css</goal>
    <goal>generateAsync</goal>
   <goals>
  </execution>
</executions>
<configuration>
 <skip>${gwt.skipcompile.config}</skip>
 <inplace>true</inplace>
 <module>${gwt.module.config}</module>
 <runTarget>Config.html</runTarget>
 <hostedWebapp>${webappDirectory}</hostedWebapp>
 <extraJvmArgs>-Xmx1024M -Xss1024k</extraJvmArgs>
 <compileReport>true</compileReport>
 <cssFiles>
  <cssFile>MyCss.css</cssFile>
 </cssFiles>

//And the code is generated like this (eclipse):
interface MyCss extends CssResource ...

//in command line
public interface MyCss extends CssResource ...

1 个答案:

答案 0 :(得分:2)

gwt-maven-plugin委托给GWT InterfaceGenerator,并且没有添加public修饰符。您可以查看git-log并确认情况一直如此(已报告sometimes)。因此,您不能从命令行执行插件目标,而应使用其他方法。例如,您可能有一个脚本,该脚本使用public(或类似的东西)添加了awk修饰符,并且该脚本不是从eclipse执行的。

旁注:您确实应该升级GWT和gwt-maven-plugin