2013-12-07 8 views
6

In meinem SBT-Descriptor enthalten ich habe:SBT: Wie sowohl gewöhnliche Glas und Test-Glas gleiche Abhängigkeit

libraryDependencies ++= Seq(
    "org.neo4j" % "neo4j-kernel" % neo4jVersion, 
    "org.neo4j" % "neo4j-kernel" % neo4jVersion % "test" classifier "tests" // test-jar 
) 

Mit diesem Setup ich nicht bekommen test-jar Abhängigkeit (zweite Zeile). Aber wenn ich die erste Zeile entferne, ist test-jar Abhängigkeit vorhanden.

Wie beide Abhängigkeiten enthalten?

+0

Ich vermute, der Trick in ist, wie Sie tatsächlich auf der Bibliothek hängen an anderer Stelle in Ihrer Projektdefinition. Könnten Sie weitere Informationen hinzufügen? Siehe auch http://www.scala-sb.org/release/docs/Getting-Started/Library-Dependencies.html#the-librarydependencies-key –

+0

Ich füge diese zwei Deps einfach zu 'libraryDependencies' hinzu, indem ich' ++ = 'benutze Betreiber wie üblich. Die erste (ohne Test) "schattet" die zweite unabhängig von der Reihenfolge, in der sie erscheinen. Ich denke, sie sollten irgendwie zu einem kombiniert werden. – Tvaroh

+0

ich denke immer noch ein wenig mehr Kontext des 'libraryDependencies' Code könnte Dinge beleuchten. z.B. es ist etwas wie 'libraryDependencies ++ = Seq (...)' wobei '...' Kommas zwischen den Elementen hat? –

Antwort

1

Versuchen Sie, Test-Jar für Ihren Hauptcode ("Kompilieren") verfügbar zu machen? Oder für Ihren Testcode?

Per http://www.scala-sbt.org/release/docs/Detailed-Topics/Library-Management.html#ivy-configurations, wenn Sie versuchen, den Test Config an etwas anderes für Ihren Haupt-Code zu erhalten, müssen Sie so etwas wie % "compile->test" (meine ‚kompiliert‘ verwendet ihren ‚Test‘).

z.B. wenn Sie beide in Haupt wollte,

"org.neo4j" % "neo4j-kernel" % neo4jVersion 
"org.neo4j" % "neo4j-kernel" % neo4jVersion classifier "tests" % "compile->test" 

oder wenn Sie nur die letztere wollen in Test, versuchen die Reihenfolge der classifier und % "test" vielleicht schlurfen?

"org.neo4j" % "neo4j-kernel" % neo4jVersion 
"org.neo4j" % "neo4j-kernel" % neo4jVersion classifier "tests" % "test" 

Do show compile:dependencyClasspath vs show test:dependencyClasspath (an der sbt Prompt) einfügen

+0

Ich muss Neo4j-Kernel-Abhängigkeit hinzufügen, um 'scope' zu kompilieren, und seine 'test-jar'-Version, um 'scope' zu testen. Was Sie vorschlagen (die Reihenfolge mischen) wird nicht kompiliert. – Tvaroh

+0

hmpf. das ist komisch b/c ich würde annehmen, dass "sagen was du willst" (inkl. der klassifikator) könnte geändert werden, indem "gesagt wird, wo du es willst". –

Verwandte Themen