1

我正在使用 gwt-maven-plugin,最近我的 IDE(eclipse 氧气)出现了奇怪的错误。经过研究,我意识到 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 ...
4

1 回答 1

2

GWT InterfaceGeneratorgwt-maven-plugin委托,它不添加修饰符。您可以查看 git-log 并确认一直都是这种情况(有时已经报告过)。所以,你不能从命令行执行插件目标,你应该使用不同的东西。例如,您可能有一个添加修饰符的脚本 using (或类似的东西),这不是从 eclipse 中执行的。publicpublicawk

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

于 2019-03-02T17:30:02.973 回答