Honestly while working with karaf we always had a maven centric world so we are bit biased I guess.
For me the core of maven is the maven repository.

Before maven there were thousands of places to get jars from. As there was no reliable place to get dependencies from most projects put their dependencies into a zip/or tar.gz file that formed the distro.

1. Maven keeps your source repository free from binaries
So the first good thing in maven is that each jar has a (kind of) world wide unique id. So instead of putting a dependency into your source control system you only refer to it using this id.

2. Maven central the place where you can get almost any jar available as open source

3. Companies can transparently mirror external repositories like maven central. So your project still has the same maven id for the artifact but you can route all through your company repository. There you can
do the mirroring, caching, security checks, license checks

4. In the karaf case the maven repository is a nice place to load artifacts from. Again the maven id is the same and you can route through your company repository.

5. Every code your teams produce goes to the company maven repository. So the repository is the way your teams can hand over snapshots and releases.

6. Maven has a nice snapshot handling. So open source projects as well as company teams can have their CI build push to a maven snapshot repo for any other to retrieve the newest versions from. This significantly shortens development cycles as you have the chance to find bugs before the release is done. We use this extensively for the projects karaf integrates.

So as you see it is not the build system. I would be interested how you do all the things above without the maven repo.

Christian



On 30.11.2015 13:17, David Leangen wrote:
Hi,

I think the maven repository is also a really nice hand over point between the 
developer and deployer roles you defined. The developer builds the bundles as 
well as the
index into the maven repository and the deployer installs from there.

Perhaps you could explain to me why, other than for backwards compatibility and 
perhaps because of wide adoption, working with maven is such a good thing? For 
those reasons, I agree that maven is necessary to maintain; but to chain people 
to maven, I am not so sure.

It seems to me that the OSGi model (OBR) is enough, and is the “OSGi Way”. 
Maven is a different world. Since I have been maven-free, it has been quite 
liberating. I see OSGi in a different (IMO nicer) way now. :-)

Just my 2yen.

Cheers,
=David




--
Christian Schneider
http://www.liquid-reality.de

Open Source Architect
http://www.talend.com

Reply via email to