我想在AbstractCellTable class
中进行一些更改(将某些字段和方法的可见性更改为受保护或公共等)。我克隆了AbstractCellTable.java
文件,对其进行了更改并将其放入我的Eclipse项目'commons'(具有相同的包名com.google.gwt...
)。
其他一些GWT项目使用commons
项目。它们位于相同的Eclipse工作区中,并使用commons
中的源依赖项。我可以编译它们并使用标准GWT Eclipse插件替换AbstractCellTable class
。
当我想将项目更改为Maven项目时,会出现问题。安装commons
项目(mvn clean install)没有问题。更改的AbstractCellTable.java
源文件出现在生成的jar文件中。但是当我编译依赖项目时,我会遇到编译错误。我现在没有stacktrace,但是这个问题的原因在于使用GWT编译器AbstractCellTable class
的原始版本。错误表明commons.jar
有编译错误(sic!),即使之前已正确安装。
我已经尝试在pom.xml
中更改依赖项的排序,但它不起作用。我正在考虑在我的仓库中安装自己的gwt-user.jar
版本,但这并不容易,因为GWT项目不依赖于Maven。
有没有更好的解决方案来取代原有的GWT课程?
答案 0 :(得分:1)
如果要编辑GWT文件,则需要创建一个具有相同名称的文件,并将其放在应用程序中与gwt中相同的包结构中。
例如: AbstractCellTable 位于 gwt-user jar中的 com.google.gwt.user.cellview.client 包中。因此,您需要在包中使用相同的包结构。
另一种方法是创建自己的maven模块,例如 custom-gwt-user ,并将 gwt-user 作为其依赖项。再次按照相同的包结构。在入口点包中添加依赖项时,请确保在 plugins->插件 - >依赖项 - >依赖下提及了gwt-user依赖项,并添加了 custom-gwt的两个依赖项依赖关系 - >依赖下的-user 和 gwt-user ,并确保您的custom-gwt-user在订单中排在第一位。
答案 1 :(得分:1)
您可以使用延迟绑定方法将现有类替换为您自己的新类。在module.gwt.xml文件中添加与此类似的行:
<replace-with class="com.stuff.something.MyClss">
<when-type-is class="com.google.gwt.user.client.pathtoclass.AbstractCellTable"/>
</replace-with>