#18 Provide Ant build file

open
nobody
None
5
2012-10-08
2006-09-13
Tony Graham
No

The documentation file
saxon/doc/index/installationjava/jarfiles.html contains:

There are no build scripts provided for rebuilding
the product from source code, because most users find
it convenient to use their Java IDE for this purpose.

Quite apart from the fact that most Java IDEs can use
an Ant build script if one exists, the absence of a
provided build script makes it harder than it needs to
be to try patching Saxon.

Working on a Windows box (always a mistake) that
doesn't have a Java IDE installed, in order to make and
test a simple change to Configuration.java, I had to:

  1. Create a build file.

  2. Discover that Saxon depends on jsr173_api.jar

  3. Configure the build file to not build the dom4j,
    etc. portions in which I was uninterested and which
    wouldn't build anyway because of other undocumented
    dependencies

  4. Reconstruct the meta-inf/manifest.mf and
    META-INF/services/javax.xml.transform.TransformerFactory
    files from saxon8.jar

  5. Create mysaxon8.jar, which may or may not contain
    the same classes as saxon8.jar, but by that point I
    really didn't care because I hadn't wanted to
    reconstruct the Saxon build process in the first place.

Discussion

  • In fact there IS now an Ant build file which you can obtain from the SourceForge SVN repository. However, it's far from productised: most people only want to build the Java HE product, whereas the Ant scripts build all six product variants (HE, PE, EE on Java and .NET); moreover (like you) many people prefer to leave out the optional components such as DOM4J support, and the scripts don't allow for this.

    I fear that creating, testing, and documenting a build script that works for everyone in any environment is probably a rather large undertaking.

     
  • Michael Kay
    Michael Kay
    2011-08-22

    Sorry, Tony, you must be surprised to get a response to your comment 5 years after raising it. The trigger was a comment that some spammer added to the thread, which caused me to be prompted to reply. There are many of these and I usually notice what's going on but on this occasion I missed it.