Independent of how Maven does things, I would like to have at least the
"required" dependencies in a binary assembly. With "required"
dependencies I mean dependencies which are required to run the core
functionality. Perhaps we can compare the situation for the binary
assembly with Ant, where you have optional tasks. If you want to use
these, you have to install additional optional JARs.

Maven supports the notion of optional, too. But I never used it up to
now. Here is an example from the Spring POM:

    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <optional>true</optional>
    </dependency>

For release candidates or development snapshots which rely on snapshot
dependencies I would definitely like to have those included in a binary
assembly. Otherwise I might have problems to get the correct snapshot
versions.

If you use Maven or another build tool which makes use of the Maven
project metadata all you need to do is to specify the dependency. In
this case there is no need to do download the binary assembly anymore.
Additionally Maven makes sure dependencies are only downloaded once --
saving bandwidth. In this scenario you wouldn't need to download
sources, too. Eclipse users can run something like this:

mvn eclipse:eclipse -Declipse.downloadSources=true

BTW, I prepared a patch for the maven-idea-plugin to have the same for
Idea. As soon as I have proper unit tests I will add the patch to the
Maven Jira.

Regards,
Arvid


Sean Schofield wrote:
> Arvid,
>
> You are right.  I guess many of the ASF projects do in fact ship with
> the dependencies.  I didn't think Struts did but I guess I forgot.  Of
> course these days I just build Struts from the source ...
>
> In the past MyFaces has *not* shipped with all of these dependencies. 
> Most people have them already.  If our release notes contain the list
> of dependencies (as generated by maven) do we really need to include
> them?  One of the dependencies for tomahawk is struts.jar.  Until
> there is a standalone tiles released do you think we should
> redistribute the entire Struts jar just because its a dependency?
>
> Sean
>
> On 1/20/06, Arvid Hülsebus <[EMAIL PROTECTED]> wrote:
>   
>> Hello!
>>
>> Which Apache projects do not ship required dependencies in their
>> binaries? I just checked a few projects, which do:
>>
>> velocity-1.4.tar.gz
>> turbine-2.3.2.tar.gz
>> jakarta-cactus-12-1.7.1.zip
>> struts-1.2.8-bin.zip
>> jakarta-jmeter-2.1.1.zip
>> axis-bin-1_3.zip
>> fop-0.20.5-bin.zip
>> xmlbeans-2.1.0.zip
>> xalan-j_2_7_0-bin.zip
>> ...
>>
>> Regards,
>> Arvid
>>
>> Sean Schofield wrote:
>>     
>>>> -1
>>>>
>>>> If you have a dependency to a snapshot version you should/must include
>>>> the transitive dependencies in the bin assembly.
>>>> But we can create two assemblies one with all dependencies and one
>>>> without. What is the problem about this.
>>>> We should provide a simple solution for the normal user.
>>>>
>>>>         
>>> If this is "the Maven way" then I respectfully disagree.  It's certain
>>> not "the Apache way."  I can't think of many ASF projects that ship
>>> the transitive dependencies in their nightly or release builds.
>>>
>>> Its also a waste of bandwidth IMO.  Maven is for managing your
>>> dependencies but nothing about Maven requires that you include the
>>> depedencies in your final product.
>>>
>>>
>>>       
>>>> Bernd
>>>>
>>>>         
>>> Sean
>>>
>>>
>>>       
>>     
>
>   

Reply via email to