I've taken advantage of the new capabilities that Subversion provides
for refactoring, to set up struts-faces as a top-level subproject with
the ability to create its own release artifact. Interestingly, this
subproject has four subsubprojects that provide its content as well,
so the top-level build.xml is set up to delegate as needed to assemble
the entire thing. The directory structure is:
$STRUTS_HOME/
struts-faces/
build.xml -- top level build script
core-library/ -- subsubproject for the library itself
example1-webapp/ -- first sample webapp (non-Tiles)
example2-webapp/ -- second sample webapp (Tiles)
sysclient-app/ -- system integration test ... client side
systest1-webapp/ -- system integration test ... server side
Each of the subsubprojects has its own build.xml to manage the details.
So far, this is all still Ant based. While contemplating how we might
use Maven for it, I've got some questions I hope the Maven gurus can
address:
* My understanding is that Maven is easiest to use on
projects that create a single artifact ... but I need to
assemble that artifact from several subordinate artifacts.
So, I guess we'll need some sort of multi-target support?
* The Ant scripts still use build.properties files for an important
reason: I need to be able to substitute alternative solutions
for the dependencies:
- Struts itself (1.1, 1.2, or trunk)
- JSF implementation (RI or MyFaces)
How can I do that with Maven?
* The build scripts utilize Ant's filtering tasks to modify the
web.xml files based on which JSF implementation is used
(as well as conditionally include some extra libraries that
MyFaces needs but the JSF RI doesn't). How can I
do that with Maven?
* As the scripts work now, they include the source code in
the same distribution as the binaries, so there's only one
file for the user to download. I'm OK with doing them
separately, but it would be nice if Maven supported this
style as well.
Craig
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]