2016-03-30 6 views
2

Meine fast leer SBT project here hat nur eine Abhängigkeit:Artifact gezogen wird ohne explizite Abhängigkeit gezeigt von SBT-Abhängigkeit-Diagramm

  • "org.apache.hadoop" % "hadoop-yarn-server-nodemanager" % "2.2.0"

the pom solcher Artefakt prüfen, wie es scheint es nicht hängt von jedem guice-servlet Artefakt ab.

Allerdings, wenn ich sbt dependency-tree betreibe ich etwas anderes sehen, ist es auf einem guice-servlet Artefakt abhängig:

[email protected]:~/workspace/pack$ sbt dependency-tree 
[info] Loading project definition from /home/user/workspace/pack/project 
[info] Set current project to pack (in build file:/home/user/workspace/pack/) 
[info] eu.pepot.eu:pack_2.10:0.1 [S] 
[info] +-org.apache.hadoop:hadoop-yarn-server-nodemanager:2.2.0 
[info]  +-com.google.inject.extensions:guice-servlet:3.0 
[info]  | +-com.google.inject:guice:3.0 
[info]  | +-aopalliance:aopalliance:1.0 
[info]  | +-javax.inject:javax.inject:1 
... 

Was bin ich?

+2

Von der POM, die Sie zur Verfügung gestellt haben, sieht es so aus, als wäre hadoop-common auch eine Abhängigkeit, die eine Reihe weiterer Abhängigkeiten aufweist. Hast du versucht, in dieses Kaninchenloch zu kommen? [hadoop-common] (https://repo1.maven.org/maven2/org/apache/hadoop/hadoop-common/2.2.0/hadoop-common-2.2.0.pom) – Eric

+0

Wie @Eric sagte, es ist eine rekursive transitive Abhängigkeit, bis Sie alles erhalten, was Ihre Top-Level-Abhängigkeit benötigt. Das macht die Abhängigkeitsauflösung sowieso nützlich - so viele Ebenen wie nötig. –

+0

@Aleksey was meinst du mit "rekursiv"? – mauriciojost

Antwort

1

Diese Abhängigkeit kommt von der Elternpom, hadoop-yarn.

hadoop-yarn-server-nodemanager Verwenden Sie hadoop-yarn-server, die hadoop-yarn verwenden. Dieser Pom hat viele Abhängigkeiten, einschließlich Guice.

+0

'hadoop-gam-server-nodemanager' hängt nicht direkt von 'hadoop-common' ab, warum werden dann keine Abhängigkeiten zwischen den Abhängigkeiten aufgelistet? Ist es das erwartete Verhalten? – mauriciojost

+0

Ich habe "hadoop-common" nicht erwähnt. Die Abhängigkeiten stammen vom übergeordneten Pom, diese Beziehung wird nicht mit Ihrem Tool angezeigt. Sehen Sie sich die pom.xml direkt an –

+0

Der fehlende Punkt war die Eltern-Abhängigkeit, die nicht explizit vom Tool angezeigt wird, danke! – mauriciojost