2016-07-22 51 views
0

我有scala項目,我用sbt中的'assembly'命令製作jar。 我有兩個application.conf文件中的一個在scala/main中,另一個在scala/test文件夾中。爲什麼scala程序集在jar包中包含來自test文件夾的application.conf文件?

構建jar包含來自test文件夾的application.conf文件,我不想要。我想要jar包含來自scala/main文件夾的application.conf文件。

如何使用匯編命令在生成的jar中包含該文件。請提出建議。

回答

3

README

如果有多個文件共享相同的相對路徑(例如,在多重依賴性JAR文件名爲application.conf資源),默認的策略是驗證所有考生具有相同的內容和錯誤出除此以外。

所以,如果它不給你一個錯誤,這兩個文件可能是相同的。您可以自定義行爲,並明確排除一個行爲。以下是您可以添加到您的示例配置:build.sbt

assemblyMergeStrategy in assembly := { 
    case PathList("scala", "test", "resources", "application.conf") => 
    MergeStrategy.discard 
    case x => 
    val defaultStrategy = (assemblyMergeStrategy in assembly).value 
    defaultStrategy(x) 
} 
相關問題