commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Cooper <>
Subject Re: Distributions to include dependencies?
Date Mon, 27 Dec 2004 23:48:00 GMT
On Mon, 27 Dec 2004 16:38:03 -0500, 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?
> 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?

Not me. Doing this will lead to people having multiple copies of
various component jars lying around on their disks, and will
unnecessarily increase the amount of stuff that people need to

For example, suppose I use Digester and Betwixt. I download them both,
and now I have two copies of Digester, BeanUtils and Logging. But if I
actually wanted to use BeanUtils itself, I'd need to download it
again, because I only have the jar file, and not the JavaDocs or other
contents of the distro.

It's also not clear to me that every component is going to comprise a
single jar for the purposes of inclusion into another distro. In such
cases, there would need to be some well-defined structure for the
additional files.

One more: How do you define dependencies? What happens in cases such
as Resources, where there are multiple optional implementations? Do we
include all of them, or just some of them, and how would we decide?

Martin Cooper

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

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

View raw message