|
HowToBuildNormalRepository
How to build a normal Ivy repository using Ivy RoundUp
OverviewWhile the primary goal of the Ivy RoundUp project is to provide an online Ivy repository, not repository build tools, it's easy to use the Ivy RoundUp build infrastructure to create a normal Ivy repository. How to do this is described here. The Ivy RoundUp repository contains ivy.xml files but no actual artifacts. In place of artifacts, it has packager.xml files which describe how to download and (if necessary) extract artifacts on-demand. An "ant" task in allows you to build a normal repository automatically using this information. Prerequisites
Software Requiring License AgreementsSee ManuallyDownloadedSoftware for a list of software you must download manually, due to the requirement that you must click to accept a license. Steps To Build RepositoryOnce you've satisfied the prerequisites:
After downloading all of the resources and resolving every module in Ivy RoundUp, your completed "normal" repository will be in build/repo-with-artifacts. If ant fails with java.lang.ClassNotFoundException: org.apache.xalan.processor.TransformerFactoryImpl then instead of running ant run ant get-xalan all or install the Xalan libraries into your ant lib. |
Seems another prerequisite is I have to add xalan.jar in my Ant lib, otherwise I get:
BUILD FAILED /home/hurstj/ivyroundup/build.xml:147: javax.xml.transform.TransformerException?: java.lang.RuntimeException?: Unrecognized XSLTC extension 'http://xml.apache.org/xalan/PipeDocument:pipeDocument'
Seems that you also need graphiz installed. There's a call to circo used to generate dependency diagrams (not installed by default on Mac OS). I was able to resolve the error by installing graphiz-2.22
grahphiz is called from the top level build.xml, but the the build should not fail if they don't exist (failonerror="false"). It is used to generate the depedency graph graphical depiction. If it fails you will see an error message but the build should still succeed.
Snippet from build.xml:
<exec executable="/bin/bash" logError="true" failonerror="false"> <arg value="-c"/> <arg value="circo -Tgif -o build/graph/modules.gif build/graph/modules.dot"/> </exec> <exec executable="/bin/bash" logError="true" failonerror="false"> <arg value="-c"/> <arg value="circo -Tsvg -o build/graph/modules.svg build/graph/modules.dot"/> </exec>It's Graphviz not graphiz. I'm pointing it out in case someone wants to install it and needs to search for the exact name.