On Thu, Feb 10, 2011 at 9:57 PM, Erik Huelsmann ehuels@gmail.com wrote:
I know that Maven can use Ant tasks, so the easiest way forward might be to have Ant continue to build while Maven packages it. Maven has the reputation of strong—i.e. inflexible–ideas about directory layouts that may prove to make this task difficult.
Wait - Maven (by default) requires a certain directory structure if you use it to build your project; but I'm not proposing that, it would be a daunting task with no foreseeable benefits. I'm just proposing to use Maven to "deploy" (i.e. copy to the repository) our already-made releases. You can do it with Ant + Maven tasks too, but imho it's simpler with Maven alone (which amounts to something like mvn gpg:sign-and-deploy-file /path/to/abcl.jar /path/to/pom.xml repo-url, same for sources and javadoc jars).
From the start I was assuming that using Maven was indeed to deploy ABCL and using Maven as a distribution mechanism. However, I'm now wondering if deployment-only is too restrictive. What happens when a deployed ABCL is downloaded from the Maven repository? The user gets access to it, but may want the option to rebuild the ABCL jar for whatever reason. With the deployment-only option, the user won't be able to do it from his integrated Maven-management environment, correct? If that's true, will 'deployment-only' be a limiting factor for deployment of ABCL through Maven, or is it a step forward and should we just see what comes next?
Maven-deployed sources are not buildable in general, they're just meant as an aid to IDEs (to show the source of the Maven-imported libraries). So, a user wanting to build his/her own ABCL and integrate into his/her Maven-based project won't be able to do it from the abcl-sources.jar, and that's not specific to ABCL. Such a user will have to build ABCL and install it into his/her local Maven repository. If ABCL were buildable by Maven, that would amount to a single command (mvn install from ABCL's project directory). It will, instead, require two commands: ant abcl.jar and mvn install:install-file -Dfile=dist/abcl.jar -DpomFile=pom.xml. Or a single one: ant -f maven.build.xml abcl.maven.install provided a suitable Maven-enabled maven.build.xml exists. I still need to understand clearly what installing Maven support for Ant amounts to.
I hope this mail sheds a little more light on these dark matters :D
Cheers Alessio
Bye,
Erik.