[
https://issues.apache.org/jira/browse/AVRO-545?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12868901#action_12868901
]
Scott Carey commented on AVRO-545:
----------------------------------
The mapreduce dependency in Avro is specified as "optional", which means that
consumers of avro do not automatically pull it in as a dependency. In other
words, its not a transitive dependency.
We can move it to another jar "avro-mapred.jar", but there is only a KB or two
difference in jar size at the moment.
{code}
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>
<version>0.20.2</version>
<optional>true</optional>
</dependency>
{code}
In short, if Hadoop 0.22 depends on Avro 1.4, it does not imply that Hadoop
0.22 depends on Hadoop 0.20.2 due to the above "optional" flag.
http://maven.apache.org/guides/introduction/introduction-to-optional-and-excludes-dependencies.html
>From the maven site:
{quote}
How do optional dependencies work?
Project-A -> Project-B
The diagram above says that Project-A depends on Project-B. When A declares B
as an optional dependency in its POM, this relationship remains unchanged. Its
just like a normal build where Project-B will be added in its classpath.
Project-X -> Project-A
But when another project(Project-X) declares Project-A as a dependency in its
POM, the optional dependency takes effect. You'll notice that Project-B is not
included in the classpath of Project-X; you will need to declare it directly in
your POM in order for B to be included in X's classpath.
{quote}
> Move mapreduce bindings out of avro jar
> ---------------------------------------
>
> Key: AVRO-545
> URL: https://issues.apache.org/jira/browse/AVRO-545
> Project: Avro
> Issue Type: Bug
> Components: java
> Reporter: Owen O'Malley
>
> MapReduce should not depend on any jars (eg. avro's main jar) that also
> depend on the MapReduce jar.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.