I tend to spell it "JBS" :-D
Berin Loritsch wrote:
For the most part it works just fine. Just a couple observations though:
* There is no "clean" target, so that process either has to be done through Maven or manually deleting the "target" directories. Kind of a pain.
uhm, yeah. I never do 'clean'. I do
find . -name 'target' -or -name '*.log' | xargs rm -Rf
which is much quicker than loading up a JVM and having it get to grips with the filesystem. Should add it for the non-UNIXers I guess :-D
* Any changes to the versioned JPS code doesn't automatically get updated. Even if we "re-install" the JPS stuff, the JPS installer ANT script uses the archive of the JPS stuff instead of what we just updated.
yep. I used to use a cvs checkout for that, but there's no <svn/> ant task that works well. After making changes right now you need to run
cd buildsytem/jbs sh create-archive.sh svn commit -m 'update archive'
which can't be done with ant because of the no <svn/> issue.
Anyway the original reason to structure things this way is that it allows
export REPO=http://svn.apache.org/repos/asf/excalibur/trunk/ wget $REPO/buildsystem/jbs/install/build.xml ant
which I had as part of an rpm specfile at some point so you could
apt-get install jbs jicarilla-src
and get the latest version of JBS properly installed and the latest sources from CVS. That wasn't worth maintaining. Feel free to change things :-D
It does work though. That much can be said for it.
I will be the first to admit that it doesn't work that well. Some of the other recent ant-1.6-based build setups are somewhat cleaner. This is the only tool I've seen that autogenerates gump descriptors that are always 100% valid.
But IMHO the single big advantage over using maven is being able to debug by adding a <echo/> statement in an obvious place (or a System.out.println() in the bits javascript code) or running -verbose. It's just ant. When things fail, that makes it much easier to fix things. Like I had to do today.
This is alsoo why I really like the dense dependencies.list files (I think I'm probably the only one). They're hacker-friendly. I can do something like
find . -name dependencies.list | xargs sed -i \
-e 's/excalibur-\([^ ]\+\) [^ ]\+ /excalibur-\1 - /'which replaces all instances of
excalibur-blah 1.2.4
with
excalibur-blah -
(ie a SNAPSHOT dependency) in all projects. Yes, that can be done to XML. No, it is not as easy.
cheers,
- LSD
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] Apache Excalibur Project -- URL: http://excalibur.apache.org/
