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/



Reply via email to