2

我正在将项目从 gwt 2.6.1 迁移到 gwt 2.7.0,编译成功,但在编译期间显示警告消息

[警告] 资源 'images/home.png' 是通过 ClassLoader 定位的。因此,该资源的更改不会反映在每个文件的重新编译中。它应该通过 .gwt.xml 中的 <source /> 或 <resource /> 条目进行注册。在 GWT 的未来版本中,我们将删除此回退并且您的应用程序将停止编译

我有一个扩展 ClientBundle 的接口

public interface HomeResources extends ClientBundle {

    @Source("images/home.png")
    ImageResource home();

}

图片文件home.png的路径是src/main/resources/images/home.png

它适用于 gwt 2.6.1,但根据此警告消息,它不会再与下一个 gwt 版本 2.8.0 一起编译。

我试图在我的 Module.gwt.xml 文件中添加这些标签 <source /> 或 <resource /> 但它似乎不起作用,有什么建议可以解决这个问题吗?

最后我创建了文件夹 src/main/resources/<same_package_ClientBundle>/images 并将图像放在这个文件夹中,警告消息消失了

4

4 回答 4

2

在 GWT 中,您不会在 ClientBundle 中使用的资源应该位于 ClientBundle 类附近。对于您的示例:

package com.somepackage.client

public interface HomeResources extends ClientBundle {
    @Source("images/home.png")
    ImageResource home();
}

你的资源应该位于这个包内:com.somepackage.client.images

于 2017-08-28T14:37:45.300 回答
0

GWT 编译器警告说明了我们需要做什么。

“它应该通过您的 .gwt.xml 注册或进入。”

但是关于如何指定图像文件目录的路径位置并没有多说。目录路径位置是 .gwt.xml 文件的相对路径。

例如

<resource path="relative/path/to/images/directory/from/current/location"/>

于 2018-02-23T03:35:06.873 回答
0

检查文件名和资源名称。

文件名 资源名称 ssLogo.png | ssLOGO(); => 你有警告。
ssLOGO.png | ssLOGO(); => 拼写检查。没有警告。而已。

于 2018-05-12T10:20:50.153 回答
0

图像文件应该位于源路径中,因此如果不是这种情况,请将图像移动到源路径中,例如在客户端包中名为“资源”的包中。

否则在 gwt.xml 文件中尝试这个:

<resource path="imagefolder" />
于 2016-02-17T11:59:52.867 回答