Используйте следующие в build.sbt
:
def unpackjar(jar: File, to: File): File = {
println(s"Processing $jar and saving to $to")
IO.unzip(jar, to)
jar
}
resourceGenerators in Compile += Def.task {
val jar = (update in Compile).value
.select(configurationFilter("compile"))
.filter(_.name.contains("common"))
.head
val to = (target in Compile).value/"unjar"
unpackjar(jar, to)
Seq.empty[File]
}.taskValue
Это предполагает, что "common"
является уникальной частью среди всех ваших зависимостей. В противном случае вам нужно исправить filter
.
Он также предполагает, что вы действительно не хотите файлы в compile
, но немного позже, когда вызывается package
. Вам необходимо будет переместить код между Def.task{...}
в compile in Compile
блок как:
compile in Compile <<= (compile in Compile).dependsOn(Def.task {
val jar = (update in Compile).value
.select(configurationFilter("compile"))
.filter(_.name.contains("common"))
.head
val to = (target in Compile).value/"unjar"
unpackjar(jar, to)
Seq.empty[File]
})