Reinhard Poetz skrev:
Carsten Ziegeler wrote:
After some thinking I think I have a simple solution to our problem
about how to build trunk with m2: it's simple, Maven can do this for us!
The Maven war plugin is able to assemble the webapp by combining the
contents of several war projects. So if we change all of our blocks
projects (that have samples or web resources) from "jar" to "war" and
please don't do this, I will explain later
then add the dependency to the war project in the pom in cocoon-webapp,
Maven does everything for us. I just tried this with the
cocoon-session-fw-sample block and it seems to work. Though I did not
get everything working. See below
Now - as always - there are some (minor) problems:
- Currently Maven requires that a war has a web.xml: This requires to
add a dummy web.xml to each sample block; this web.xml is later on
ignored as the web.xml from the cocoon-webapp is used. I guess if we go
this way, we can ask the maven guys to provide some option to make
web.xml optional.
- We have to restructure the directory layout of our blocks a little
bit: all resources for the webapp should go to src/main/webapp. So, for
example a block with a configuration (no sample block) has:
src/main/webapp/WEB-INF/conf with the configuration files while a sample
block might have a src/main/webapp/samples/blocks/BLOCKNAME/ directory.
no, please don't do this either. We need our resources in
src/main/resources/COB-INF to make them 'real blocks'. Doing something
different, would be a step into the wrong direction.
I agree with Reinhard to a large part, and would also like to add that
the proposed solution will be quite heavy as each block will need a copy
of cocoon-core and all its dependencies.
OTH we badly need to get some limited samples working for trunk ASAP. So
that the community can get its faith in trunk back. And so that the
threshold for getting involved in trunk development and testing becomes
lower.
So I suggest that we follow Carstens suggestion for a few important
samples like forms and portal samples. And make the cocoon-webapp
dependent on these samples. But instead of moving the configuration
files from src/main/resources, we should just copy them to the samples.
Copying is of course not ideal, but it will only be for a few samples,
so it shouldn't be that much work to keep in synch, and it is only for a
limited time.
I'm totally against moving the configuration files, as it will disturb
the blocks work, and we are close to be able to deliver something much
more usable than the above solution.
/Daniel