Jesse Kuhnert wrote:
Please, let's not go overboard....Ant is nice like c is nice when you need
to get small things done. If you have to maintain very large projects with
varying releases/users/etc maven is a much better choice. Even with its
current flaws. =p

I'm not arguing with that, its the transitive dependency thing I'm commenting on.

when you write a project, your goal is to get it compile, to create whatever artifacts you create. If you include too many things in your dependency list (like commons-logging instead of commons-logging-api), your stuff still build happily, it just has excessive dependencies, as now it thinks logkit comes in. The people consuming your jar either propagate the problem, or have to do stuff like :

      <dependency groupID="commons-lang"
          artifactID="commons-lang"
          version="${commons-lang.version}">
        <exclusion
            groupId="junit"
            artifactId="junit"/>
      </dependency>
      <dependency groupID="commons-logging"
          artifactID="commons-logging"
          version="${commons-logging.version}">
        <exclusion
            groupId="junit"
            artifactId="junit"/>
        <exclusion
            groupId="logkit"
            artifactId="logkit"/>
        <exclusion
            groupId="avalon-framework"
            artifactId="avalon-framework"/>
      </dependency>

That's the issue. With transitive dependencies, you inherit any error made by anything you depend on. And while you can upgrade versions at the touch of a file, you have to recheck the dependencies whenver you upgrade, or junk creeps in.

Now, I think its really nice to know what something was built with; its a wonderful hint as to what you should be using, but its nothing more. A hint. Something to be looked at, and, in the case of the example above, then pretty much discarded.

-Steve

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to