directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Emmanuel Lecharny <elecha...@gmail.com>
Subject Re: Maven Builds
Date Thu, 31 Aug 2006 23:43:30 GMT
I gonna auto-answer some of my questions, but it induces more other 
questions :)

> I'm playing with Maven an try to set my dream environment :

> - I want two repos : one for jars, one for plugins : is it possible ?

Definitively. There is a <repositories>  element and a 
<pluginRepositories> one. Great !

> - I want those repos be at the same level than the top level pom.xml : 
> jars and plugins respectively :
>
> .
> ..
> /jars
> /plugins
> /project1
> /project2
> pom.xml
>
> and my pom.xml will contain :

<snip/>

>
> Is it correct ?

Part of my new pom.xml :
  <repositories>
    <repository>
     <id>central</id>
     <name>Apache Directory Repository</name>
     <url>jars</url>
     <layout>default</layout>
    </repository>
  </repositories>

Well, now have a problem : how do I set up the url to point on jars. If 
I go up to a subproject (like project1), then I can't build my project, 
because there is no 'jars' directory in it. So the url should be 
something like $basedir/jars, where $basedir is the pom.xml path where 
$basedir is declared. is it possible?

> - Now, I don't want Maven to look after jars or plugins in the outer 
> world. Modifying settings.xml does not fit me, because that means 
> other users have to set it on their computer, and tis is a global 
> element. I want to disable external repos from the top level pom.xml. 
> Is it possible ?

Don't know yet. My RTFM session was not completely satisfying : the 
"better build with maven" is a great doco, but very general. And 
browsing the web site lead me to something I strongly desagree with :
"It is not recommended that you store your JARs in CVS. ... With Maven 
these standard utilities can be stored in your local repository and 
shared by any number of builds.

This has the following advantages:
*1) It uses less storage"
*Who cares ??? For less than 200$, I can buy 300Go disks. ApacheDS 
repository is only 55 Mb big. This is NOTHING.
*2) It makes checking out a project quicker
*Who cares? I do check out ADS completely very often (around once a 
week), and I really think I'm very untypical. You generally checkout a 
project a few times in its whole life, and even if it takes 10 minutes, 
big deal.
*3) No need for versioning
*This is all but an advantage. This is the way to break a configuration 
managment. As you don't version, you have no way to guarantee that a jar 
you are downloading is the one which has been use for the current 
version of the product you are building. It is said on Maven web site 
that you don't need to store in CVS immutable files, because if the file 
change, its name change accordingly (junit-3.8.1.jar -> junit-4.1.0.jar, 
for instance). Badly wrong. Not that far away, many jar's name weren't 
changed. You had to look at the manifest to know which version it was, 
if the developper has put this number in it :(. IBM Websphere is still 
using this naming scheme (poor poor deployers ...). And I have seen sooo 
many times a developper modifying a jar to add the last forgotten patch 
without modifying the jar's name (and of course, this patch break 
something in your code, and of course he was subtle enough to 
re-generate the sha1 files so that its last minute and at nigth 
modification went through all the Q&A processes ...)

Ok, ok, personnal opinion expressed...

More RTFM to come ! I may finally adopt maven and use it frantically :)

> Emmanuel



Mime
View raw message