Hi!

I have a general question about buildfiles and artifacts.
Let's say, I have 5 killer apps, much like in http://buildr.apache.org/packaging.html:
- la-web
- the-api

For each killer app, "la-web" is different, but "the-api" is actually the same. It is the core functionality which is used by "la-web".

So now I see two options:
1. Create a buildfile for "the-api", build a (maven) artifact with some version number and include that in each killer app's build as a POM dependency 2. For each killer app, I create a folder layout as in http://buildr.apache.org/packaging.html and build it all at once

Currently, I have implemented option 1, however I am considering to use version 2. The main reason is, that "the-api" is under heavy development and gets new functionality very frequently. I would have to bump the version like each week. Ok, I can use Snapshot versions, but what about feature branches then? What versions to give them? And how to include in my build? And also, why clutter my maven cache with lots of useless temporary versions? On the bright side, "the-api" project is self contained. Everything I need to build is inside the project itself.

With option 2, I would simply checkout the branches I want and build. No hassle with version numbers, snapshots etc. But then I get other problems: I would still want to be able to actually build "the-api" separately, but where is my buildfile for it now? It is inside the killer-apps. Also, in each killer app "the-api" is built in the same way, so the buildfile would look identical. I would have redundant code, which I obviously want to avoid. How to modularize? With include? With require? With some custom tasks/extensions?

Anyone who knows what I am talking about? What is your solution?

Is there maybe a site with lot of buildfile examples where one could learn some tricks? Maybe a Wiki could be created where people could post their buildfiles and explain them? I would gladly post mine there. I think like this everyone could benefit from each other.

Anyway, glad to hearing opinions about my above scenario.

Cheers, Ingo =;->

Reply via email to