Question

I am trying to add a PNG graphic to a GWT 2.6 application in Eclipse Kepler, using the latest plugins.

I have found numerous StackOverflow questions dealing with this topic, such as this, this, this, this or this. Likewise, there are plenty of resources on the web, such as this, this or this. Ultimately, there are the official docs on the project structure.

They all boil down to putting static resources such as image files into the war or the public folder.

Now, my default project structure created by Eclipse does not seem to contain any folder named public, so I am not sure where that one would be supposed to be located, but I have tried on two machines placing the files in the war folder. Evidently, this does not work, as the custom contents of the war folder is deleted every time I recompile the project.

What am I doing wrong; where are image files or other custom static resources supposed to be placed in my project?

Was it helpful?

Solution

The content of the war folder shouldn't be deleted, except for the specific folder that GWT writes into (war/myapp, assuming you have a rename-to="myapp" in your .gwt.xml). If it does, then there's either a bug in the Google Plugin for Eclipse or a misconfiguration of your Eclipse project.

Re. the public folder, it should sit just next to your .gwt.xml file (and client, server and/or shared subpackages)

Whether you'll use one or the other depends on how your module will be used:

  • If it's a library and you want to ship the resource with it, then use public; and make sure you use sufficiently unique file/folder names so as to not cause conflicts.
  • If it's a library and you want to force people to provide their own resource, then don't use public (you could also make a distinct module just for the resources, that people will be free to use or not).
  • If it's an application, then pick whatever you want. I tend to prefer war.
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top