2015-01-07 3 views
6

में परीक्षण कक्षाओं और परीक्षण निर्भरताओं को शामिल करने के लिए कैसे मुझे अपने टेस्ट कक्षाओं, संसाधनों और एसबीटी असेंबली के साथ परीक्षण निर्भरताओं को पैकेज करने की जरूरत है।एसबीटी asssembly

यह प्रश्न sbt-assembly : including test classes मदद नहीं करता - परीक्षण: असेंबली अभी भी वांछित कक्षाओं में से किसी एक के साथ एक जार उत्पन्न नहीं करता है।

नोट है कि मेरे सेटअप वर्तमान में इस तरह दिखता है:

FooBuild.scala:

lazy val cucumberAssemblySettings = assemblySettings ++ Seq(
    mainClass in assembly := Some("cucumber.api.cli.Main"), 
    jarName in assembly := "cucumber.jar", 
    mergeStrategy in assembly := { 
     case "application.conf"  => MergeStrategy.concat 
     case "logback.xml"   => MergeStrategy.last 
     case x      => defaultMergeStrategy(x) 
    } 
) 

और यह subproject foo-cucumber के बारे में बताया गया है:

lazy val foo_cucumber = Project("foo-cucumber", file("foo-cucumber")) 
    .settings(defaultSettings: _*) 
    .settings(cucumberAssemblySettings: _*) 
    .dependsOn(
     foo_test_server % "compile->compile;test->test", 
     foo_test_utils % "compile->compile;test->test" 
    ) 

भले ही मैं सेटिंग्स में (Test, assembly) संलग्न ऊपर, मुझे केवल एक जार मिलता है (जिसका नाम एक निर्दिष्ट नहीं है, लेकिन पूर्ण नाम, संस्करण के साथ) जिसमें परीक्षण कक्षाएं या निर्भर नहीं है ncies, कोई फर्क नहीं पड़ता कि क्या मैं आह्वान sbt foo-cucumber/test:assembly या sbt foo-cucumber/assembly

मैं एक जार उसमें जो कुछ (संकलन और परीक्षण वर्गों और निर्भरता)

उत्तर

2

बहु मॉड्यूल परियोजना के लिए कुंजी सेटिंग्स निर्धारित करने की है कि कैसे मिलता है इस तरह से:

.settings(inConfig(Test)(cucumberAssemblySettings): _*) 

और फिर नहीं सेटिंग्स

+0

मैं इस तरह की कोशिश की में किसी भी in (Test, assembly) है, हालांकि, मैं अभी भी नहीं वें में संकलित परीक्षण वर्गों पा सकते हैं ई जार फ़ाइल। क्या आप अपने संशोधित build.sbt को पोस्ट करना चाहते हैं? धन्यवाद – flyingfromchina

+2

आपको 'test: assembly' चलाने के लिए है। फ़ाइल में कोई अन्य संशोधन नहीं है – Bozho