2016-05-03 12 views
2

So, hier ist die Struktur meines Projekts:Wie kann man die Mavenabhängigkeit, die in einem anderen Projekt angegeben ist, in mein Projekt aufnehmen?

pom.xml 
--myproject1/pom.xml 
--myproject2/pom.xml 

Dies ist die Abhängigkeit, die ich aufnehmen möchten:

<dependency> 
    <groupId>junit</groupId> 
    <artifactId>junit</artifactId> 
    <version>${junit.version}</version> 
    <scope>test</scope> 
</dependency> 

Im Moment habe ich diese Abhängigkeit von Eltern angegeben pom.xml. Und myproject2 hat myproject1 als seine Abhängigkeit angegeben.

Aus irgendeinem Grund möchte ich diese Abhängigkeit aus dem übergeordneten pom.xml verschieben und verschieben Sie es auf myproject1/pom.xml. Es scheint jedoch, dass myproject2 nicht auf die junit Abhängigkeit zugreifen kann, obwohl myproject1 als eine seiner Abhängigkeiten aufgeführt ist.

Irgendeine Idee, wie kann ich das tun?

Antwort

1

Bereich test ist nicht transitiv. Das ist alles.

Wenn du junit in myproject2 willst und du möchtest, dass junit aus dem Eltern-Pom bleibt, dann musst du erklären, dass myproject2 von junit abhängt.

+0

Danke! Ich habe auch org.slf4j log4j-over-slf4j $ {slf4j.version} Für diesen einen, ich den Umfang nicht angeben, aber es wird auch verwendet, im Test. Bedeutet das, dass ich das auch in mein Projekt2 schreiben muss? – SteveW

+1

Wenn Sie keinen Bereich angeben, wird standardmäßig "kompilieren" ausgewählt. 'compile' ist transitiv, also ist slf4j in myproject2 verfügbar – michaldo