我希望将静态资源排除在类树之外,但将它们放在src/main/resources树中。尽管它们应该使用与java类相同的路径找到,例如:
打包my.path.to;
class ResourceBundle extends ClientBundle {
@Source("src/main/resources/my/path/to/ResourceBundle/myIcon.png")
ImageResource myIcon();
}我是否总是必须写入@source路径才能引用它们?或者,我是否可以以某种方式告诉ClientBundle只在与java类相同的目录中查找,但仅在资源中查找?
发布于 2013-05-02 22:10:09
默认情况下,它将在与您的java类相同的目录中查找。我通常将我的图形放在资源包的子包中。这保持了我的java的整洁和分离,并且我不需要做绝对路径。我相信../ relative路径也可以,如果你想这样做的话,但是对我来说,把图片放在资源的子包中似乎更干净。
com.vf.client.resources
com.vf.client.resources.images
com.vf.client.resources.css
/**
* Draggable cursor icon.
*
* <br />
* Example
*
* <img src="images/cursorDragArrowSmall.png" />
* @return ImageResource
*/
@Source("images/cursorDragArrowSmall.png")
ImageResource cursorDragArrowSmall();发布于 2013-05-02 23:22:56
如果您不使用@Source注释ImageResource,则ImageResourceGenerator将通过ResourceGeneratorUtil.findResources()使用相对于ClientBundle包的路径,附加方法名称并使用一组默认扩展来解析ImageResource源路径(这些扩展依次为: png、jpg、gif、bmp;请参阅ImageResource是如何通过@DefaultExtensions注释的)。
因此,如果您将图像放到ClientBundle的同一个包中,它们将自动解析,甚至不需要使用@Source注释。如果您有名称相同但扩展名不同的图像,则根据前面的顺序选择第一个。
我不是一个maven用户,但是如果你在src/main/resources中保持相同的包结构,你的图片也会以同样的方式被提取出来。不过从来没试过。
https://stackoverflow.com/questions/16339944
复制相似问题