On 4 March 2011 19:53, Brian Reilly <brian.irei...@gmail.com> wrote:
>>> There's a deeper question there: are UiBinder ui.xml, LocalizableResources
>>> properties, ClientBundle css, images, etc. "resources" or "sources"?
>>
>> From Maven's point of view: yes, they are resources, not sources.
>> Sources contain source code (i.e. Java code).
>
> Java code is just one example. Groovy and Scala are not Java, but are
> still source code. I would also consider .ui.xml files to be source
> code. Leaving aside libraries for the moment, they are not bundled in
> the final artifact and are instead compiled into an entirely different
> form.

I haven't worked with Groovy/Scala and Maven. Are you saying
Groovy/Scala code is supposed to go in src/main/resources? That would
indeed be strange.

The *.ui.xml files are certainly outliers. It would be nice to have
separate directories for specific GWT stuff. Maybe
src/main/gwt-resources or simply src/main/gwt.

>>> Because these are all about client-side code, which is meant to be given to
>>> the GWT Compiler, I tend to think of them as "sources" more than
>>> "resources".
>>
>> Resources are available to all Maven plugins and tools. Just like,
>> e.g., a Hibernate configuration file. So the fact that a resource is
>> given to the GWT compiler doesn't make it a source (from Maven's point
>> of view).
>
> True. However, by default, there is an implication that resources will
> be copied (possibly with filtering) directly into the target packaging
> area during the build. Here's a subset of the maven lifecycle. Note
> the description of process-resources (I've included the surrounding
> phases for context).
>
> * generate-sources: generate any source code for inclusion in compilation.
> * process-sources: process the source code, for example to filter any values.
> * generate-resources: generate resources for inclusion in the package.
> * process-resources: copy and process the resources into the
> destination directory, ready for packaging.
> * compile: compile the source code of the project.
> * process-classes: post-process the generated files from compilation,
> for example to do bytecode enhancement on Java classes.
>
> If you have files in your project that:
>
> * are needed for compilation
> * don't fit in any other source directory under src/main (e.g. src/main/java)
> * shouldn't be included in the final artifact
>
> you can either:
>
> * put them in src/main/resources and configure a resource exclude
> * add another source directory under src/main and configure a source include

Yep, agreed.

> The types of files that Thomas mentioned are in this category. If I
> were to be concerned with not polluting src/main/java with these, I
> would choose to add another source directory.

I'm too lazy to do so but I agree. :-)

> Finally, as Thomas pointed out, whether or not the files are included
> in the final artifact depends on whether it's an application WAR or a
> library JAR. I've been assuming WAR above. For a JAR, I would probably
> use the same directory structure for consistency and just change the
> includes/excludes to get the files packaged correctly.
>
> Though I also agree that it's unfortunate that they can't be
> configured the same, compiled separately, and linked together for the
> final application WAR.
>
> -Brian

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to