This is an interesting idea, and there seem to be a number of plugins for Maven that deal with release/build/deploy automation.
Looking around to learn more about this I found this interesting intro presentation that talks about the Maven release plugin, plus plugins for other tools like Codehaus Cargo and LiquiBase (with a nice little intro to LiquiBase, which is very cool BTW): http://www.slideshare.net/wakaleo/automated-deployment-with-maven-going-the-whole-nine-yards -David On Jul 13, 2011, at 3:39 PM, Eric Bowman wrote: > Yes. We version our changes of ofbiz in a mavenesque way, and intend to use > the maven release plugin to generate releases which get "deployed" (in maven > terminology) to a repository, from which they get deployed to real servers. > > On 13 Jul 2011, at 15:18, David E Jones wrote: > >> >> Is part of the intent to use the Maven release plugin for deployment and >> such as well? >> >> -David >> >> >> On Jul 13, 2011, at 3:12 PM, Eric Bowman wrote: >> >>> Hi, >>> >>> One other point: this tool is currently useful against ofbiz "as-is", in >>> order to build software that depends on it, using maven. Converting ofbiz >>> to use maven is a considerably bigger project. >>> >>> On 13 Jul 2011, at 15:01, David E Jones wrote: >>> >>>> >>>> I know various people have expressed interest in Maven over the years. >>>> From a quick search I see such discussions going back to 2003! >>>> >>>> OFBiz would definitely benefit from more modularization, and Maven may be >>>> able to help with that. However, it is just a tool and would still require >>>> significant work in addition to what Eric describes below to clean up >>>> higher-level OFBiz artifacts like services and screens and such to make >>>> the dependency tree clean. >>>> >>>> Based on the build-time dependencies Eric has generated an interesting >>>> graph that he sent to me, and it turns out to be a pretty good graph of >>>> component dependencies (even though technically if everything were written >>>> in the way intended by the framework, there wouldn't be so many build-time >>>> dependencies like this). The graph is actually better than the old old one >>>> I hand-rolled (that is in the Component and Component Set Dependencies >>>> document in the OFBADMIN space on Confluence). >>>> >>>> Getting back to the point, does anyone have an opinion on: >>>> >>>> 1. better modularizing OFBiz >>>> 2. using Maven for build and/or module dependency management? >>>> >>>> -David >>>> >>>> >>>> On Jul 12, 2011, at 12:09 PM, Eric Bowman wrote: >>>> >>>>> Hi, >>>>> >>>>> I've written a tool that we're considering open sourcing, and I'm curious >>>>> to gauge how much interest there would be in it. >>>>> >>>>> The purpose of the tool is to generate proper poms for each of the ofbiz >>>>> modules by inspecting an ofbiz directory. It works in two steps, and it >>>>> uses the Nexus search API (so it's not that interesting unless you have a >>>>> Nexus repository installed somewhere nearby). >>>>> >>>>> Here's what it does: >>>>> >>>>> 1. Inspects $OFBIZ_HOME recursively, identifying external dependency >>>>> libraries >>>>> 2. Generates the SHA1 hash of each jar, and uses a Nexus API to determine >>>>> whether that jar already exists in Nexus as a known artifact. >>>>> 3. If it does not, it takes a random sample of the classes in each jar, >>>>> and queries Nexus to see can it figure out a reasonable groupId & >>>>> artifactId. >>>>> 4. For artifacts not already in Nexus, it synthesizes a mvn >>>>> deploy:deploy-file for each jar and each possible >>>>> groupId/artifactId/version it decides might be useful, and lets you >>>>> decide which commands to run to get all the dependency jars in Nexus. >>>>> 5. After all the external dependencies are in Nexus, it looks through >>>>> $OFBIZ_HOME again, and determines all the transitive dependencies between >>>>> ofbiz modules >>>>> 6. Next it synthesizes a pom for each module, that captures both the >>>>> dependencies in that module's lib directory, as well as the simplest >>>>> transitive graph of dependencies on other modules. >>>>> 7. Finally it prints out mvn deploy:deploy-file commands which can be run >>>>> separately to put each ofbiz module's jar file into Nexus, along with its >>>>> pom. >>>>> >>>>> If you are using maven, this is pretty nice -- this way you don't have to >>>>> worry about declaring dependencies against all the jars in the ofbiz >>>>> directory; it figures all that out, and leverages maven's transitive >>>>> dependency resolution to make a clean build. >>>>> >>>>> Obviously it doesn't solve other problems, like how to deploy an ofbiz >>>>> server in a maveny way, but that may follow. >>>>> >>>>> If you're interested in seeing this open sourced, perhaps you can reply >>>>> off-list; if there is enough interest I'll put this on github. And maybe >>>>> even if there isn't. :) >>>>> >>>>> Cheers, >>>>> Eric Bowman >>>>> >>>> >>> >> >