commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Phil Steitz <>
Subject Re: Distributions to include dependencies?
Date Mon, 27 Dec 2004 20:14:36 GMT
Henri Yandell wrote:
> Not a huge issue for things like Lang which have no dependencies, but
> for other things like Digester I think it would be a lot better if the
> binary tar.gz contained the jars it depends on?

Just my HO, but to me that defeats the purpose of 
ibiblio/java-repository.  It also bloats distros and adds to the 
effective contract of the distro and responsibility of the RM needlessly 
(Would doing this effectively require us to store whatever jars were 
grabbed at release time in cvs/svn?)  This is what maven or Ant get-deps 
tasks are supposed to do for us. Also, if maven (or Ant) users wanted to 
use the bundled jars, they would still have to kludge the local repo to 
place the jars if we bundled them. For maven users, at least, this would 
be more hassle than just letting maven grab the jars.

I may be in the minority here, but I have never liked the "bundle all 
dependencies for convenience" approach -- either as a user or as a 
developer.  As a user, I am never sure exactly what I am getting "in the 
bundled version" and as a developer, I want to limit dependencies to 
versioned release binaries available from definitive locations (now de 
facto ibiblio for many things -- we need to sort out how exactly apache 
jars are maintained there).  I understand that for complex products like 
  struts or tomcat, it may be impractical *not* to bundle dependencies; 
but I do not see it as necessary for commons components.


> So when I download digester-1.6, the tar.gz contains jars for
> logging-1.0.3 and beanutils-1.7. We're not forcing those versions on
> people, just providing them to save lots of searching around or
> waiting while iBiblio responds.
> It seems pretty easy to do too from a maven.xml point of view:
> <?xml version="1.0"?>
> <project xmlns:j="jelly:core" xmlns:ant="jelly:ant">
>   <!--
>   description="Adds dependencies to distributions"
>   -->
>   <postGoal name="dist:prepare-bin-filesystem">
>     <ant:mkdir dir="${maven.dist.bin.archive.dir}/dependencies"/>
>     <j:forEach var="dep" items="${pom.dependencies}">
>       <j:if test="${dep.getProperty('distributable')=='true'}">
>         <copy todir="${maven.dist.bin.archive.dir}/dependencies"
> file="${maven.repo.local}/${dep.getGroupId()}/jars/${dep.getArtifact()}"/>
>       </j:if>
>     </j:forEach>
>   </postGoal>
> </project>
> You'd just add:
> <properties>
>   <distributable>true</distributable>
> </properties>
> to a dependency.
> Anyone interested?
> Hen
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
> For additional commands, e-mail:

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message