[Tapestry-contrib] Maven .... Nightmare
Brought to you by:
hship
From: Howard M. L. S. <hl...@at...> - 2003-01-13 12:48:26
|
I just want to caution against one thing: Please do not reoganize the source code directories yet. I know we want to organize the project structure more like an Apache project and that's fine ... but to do so now would cripple my ability to cleanly and safely merge in a huge number of changes from my branch and Mind Bridge is in the same boat with his branch. Once we put 2.3 to bed, we can merge in code changes into 2.4 and then we can rename packages and reorganize overall structure. ----- Original Message ----- From: "Howard M. Lewis Ship" <hl...@at...> To: "Tapestry development" <tap...@ja...> Cc: <tap...@li...>; <tap...@ja...> Sent: Monday, January 13, 2003 7:09 AM Subject: Re: [Tapestry-contrib] Getting back into it > To help with Maven, here's some notes about how releases are currently > built. Some of these notes overlap details in the Contributor's Guide, so > you should check that out as well. > > The master build file does all the work, reinvoking Ant in many > subdirectories and combining all the results. > > I've seen a lot of projects that require you to set environment variables > and/or use a shell script wrapper. I don't get why. > > The only thing external to the Tapestry workspace is the directories for a > couple of large, external tools: JBoss, FOP, Saxon and Clover. > > JBoss is needed because we build demos that plug into JBoss in a turnkey > way. FOP is for DocBook to PDF. Saxon is for DocBook to HTML or DocBook to > Flow Objects (fed into FOP) ... I use Saxon because it is about 20x faster > than Xalan doing the same job. Clover is proprietary source code coverage > tool. > > Getting Ant to use Saxon instead of Xalan requires a few command line > options that can be accomplished via the ANT_OPTS env variable: > > ANT_OPTS=-Xmx256mb -Djavax.xml.parsers.DocumentBuilderFactory=org.apache.cri > son.jaxp.DocumentBuilderFactoryImpl -Djavax.xml.parsers.SAXParserFactory=o > rg.apache.crimson.jaxp.SAXParserFactoryImpl > > The other three external tools (JBoss, FOP and Clover) are identified in the > build.properties file which must be placed into the config directory. This > file sets three properties needed by the many Ant build scripts: > > jboss.dir > fop.dir > clover.dir > > Each of these is the absolute path to the respective tool. It is important > to use FORWARD SLASHES ONLY or you will get build errors. I've enclosed a > copy that I use when I do builds. > > Clover has kindly donated a copy of their tool to Tapestry; a copy of their > distribution is in the support directory. > > The final piece of the puzzle is the disto build script. This is in the > support directory. I typically copy this out to a temporary directory. I > also copy my current build.properties file to the same directory. > > The distro build script has two targets. "setup" uses anonymous CVS to grab > a fresh copy of the Tapestry workspace. It uses export, so that the CVS > directories are not exported. This takes about one minute. > > "build" copies the build.properties file into the exported workspace and > invokes the "dist" target on the master build file. It then copies the > resulting distro files back up to the current directory. This takes about > nine minutes (on my new, blazing fast laptop, anyway). > > Side note: Tapestry has, checked into the repository, copies of DocBook XML > and the DocBook XSL distros. It automatically unpacks these as needed > during the build. We may want to change things to make these addtiional, > external tools as well. > > Side note: People have had compatibility issues when using Tapestry JARs > compiled by the 1.4 compiler, even in 1.3 compatibility mode. I currently > set my JAVA_HOME to a JDK 1.3 before doing the build to ensure maximum > compatibility. > > Currently, three distro files are created: Tapestry-x.x-core.tar.gz is the > main distribution, containing the compiled JARs, external libraries (such as > OGNL and Log4J) and the source code (packaged into .jar files). > > Tapestry-x.x.-doc.tar.gz contains all the documentation for Tapestry; > JavaDoc, Contributor's Guide, and the various manuals (in HTML and PDF). > > Tapestry-Web-x.x.tar.gz contains an image of the Tapestry web site, which is > similar to the doc distro, but includes the Clover code coverage report. > > Tapestry builds .tar.gz files currently because a) WinZip can open them fine > and b) they are smaller than the equivalent .zip files. > > I'm sure there'll be some impedance using Maven, but since Tapestry is > already built to use straight Ant to perform full builds (albiet with a > couple of configuration gotchas) I hope it will not be too tricky. > > ----- Original Message ----- > From: <di...@mu...> > To: "Andrew C. Oliver" <aco...@ap...> > Cc: <tap...@li...>; > <tap...@ja...> > Sent: Monday, January 13, 2003 4:07 AM > Subject: Re: [Tapestry-contrib] Getting back into it > > > > tap...@li... wrote on 13/01/2003 09:07:03 > > AM: > > > I really recommend Mavenizing to this effect. I bet dion would help > > > with that.. (http://jakarta.apache.org/maven) > > > > I'm happy to help with Mavenizing, if only for the docs part of the > > process. We should also look and see if we can improve the docbook plugin > > for Maven (as it's rarely used and a little buggy!), to handle the > > existing formats. > > > > > Alternatively (and this is what POI does) if maven doesn't do what you > > > need Centipede (http://krysalis.org/centipede) and Forrest > > > (http://xml.apache.org/forrest) might help. > > > > > > However it really depends on whether Maven works under gump... > > Maven generates viable gump descriptors these days. > > > > > Gump should be one of our top priorities (jakarta.apache.org/gump) > > > because it could do the builds and site publish for us... > > +1 > > -- > > dIon Gillard, Multitask Consulting > > Blog: http://www.freeroller.net/page/dion/Weblog > > Work: http://www.multitask.com.au > > > > > > > > > > -- > > To unsubscribe, e-mail: > <mailto:tap...@ja...> > > For additional commands, e-mail: > <mailto:tap...@ja...> > > > > > |