在GWT中为ClientBundle放置资源的位置?

mem*_*und 2 java gwt

我希望将静态资源保留在类树之外,但是将它们保存在src/main/resources树中.虽然应该使用与java类相同的路径找到它们,例如:

package my.path.to;

class ResourceBundle extends ClientBundle {
  @Source("src/main/resources/my/path/to/ResourceBundle/myIcon.png")
  ImageResource myIcon();
}
Run Code Online (Sandbox Code Playgroud)

我是否总是要写出@source引用它们的路径?或者我可以以某种方式告诉它ClientBundle只是查看与java类相同的目录,但只是在资源?

And*_*olo 5

如果你没有注释你ImageResource@Source,则ImageResourceGenerator,via ResourceGeneratorUtil.findResources()将使用相对于ClientBundle包的路径,附加方法名称并使用一组默认扩展来解析ImageResource源路径(扩展按顺序拾取:png,jpg ,gif,bmp;看看如何ImageResource通过注释@DefaultExtensions).

因此,如果您将图像放入您的相同包中ClientBundle,它们将自动解析,甚至不使用@Source注释.如果您的图像具有相同的名称但扩展名不同,则根据之前的顺序选择第一个图像.

我不是一个maven用户,但显然如果你也保持相同的包结构src/main/resources,你的图像将以同样的方式被拾取.从未尝试过.