我正在使用gwt-maven-plugin,因为最近我在IDE中遇到了奇怪的错误(eclipse oxygen)。经过研究,我意识到gwt-maven-plugin在eclipse或命令行中运行时的行为是不同的。在命令行中,一切正常,gwt:css创建了一个具有正确可见性(public)的接口。但是当我在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 ...发布于 2019-03-03 01:30:03
gwt-maven-plugin委托给GWT InterfaceGenerator,并且它没有添加public修饰符。您可以查看git-log并确认情况一直如此(已经报告了sometimes)。所以,你不能从命令行执行插件目标,你应该使用一些不同的东西。例如,您可能有一个使用awk (或类似的东西)添加public修饰符的脚本,而这不是从eclipse执行的。
附注:你真的应该升级GWT和gwt-maven-plugin。
https://stackoverflow.com/questions/54935643
复制相似问题