设置 `unmanagedResourceDirectories` 会中断从 `resourceDirectory` 部署资源 [英] Setting `unmanagedResourceDirectories` breaks deployment of resources from `resourceDirectory`

查看:15
本文介绍了设置 `unmanagedResourceDirectories` 会中断从 `resourceDirectory` 部署资源的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的设置有点奇怪.我的 Java 源代码位于/src

I have a little bit odd setup. My Java sources are located at /src

在一些 Java 类旁边有 .properties 文件.我希望将它们打包到最终的 jar 中.

There are .properties files next to some Java classes. I want them to be packaged to final jar.

Scala 源代码和资源遵循 SBT 约定,位于/srcnew/main/[scala|resources]

Scala sources and resources follow SBT convention and are located at /srcnew/main/[scala|resources]

这是我的 build.scala 的样子

sourceDirectory := baseDirectory.value / "srcnew",
unmanagedResourceDirectories in Compile := Seq(baseDirectory.value / "src"),
includeFilter in unmanagedResources := "*.properties",
javaSource in Compile := baseDirectory.value / "src",

即使 resourceDirectory 仍然指向 /srcnew/main/resources 资源,也不会进入最终 jar(使用 sbt-assembly 构建).

Even though resourceDirectory still points to /srcnew/main/resources resources don't make it to final jar (built with sbt-assembly).

我也试过

unmanagedResourceDirectories  := Seq(baseDirectory.value / "src", baseDirectory.value / "srcnew/main/resources"),

令人惊讶的是它也无济于事.

and surprisingly it doesn't help either.

推荐答案

原来问题出在一行

includeFilter in unmanagedResources := "*.properties"

应该是

includeFilter in unmanagedResources := ((includeFilter in unmanagedResources).value || "*.properties") -- "*.java",

我唯一不明白的是为什么过滤 unmanagedResources 会影响 resourceDirectory.有谁知道吗?

the only thing I don't understand is why filter on unmanagedResources affects resourceDirectory. Does anyone know ?

这篇关于设置 `unmanagedResourceDirectories` 会中断从 `resourceDirectory` 部署资源的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆