在 JAR 之外提供资源
Supplying resources outside JAR
很多手册都说存储资源的规范方式是在项目的 resources
文件夹下。问题是,在组装一个项目之后,所有资源都进入了 JAR 中。在我的例子中,资源是 SQL 脚本,如果任何 SQL 脚本发生变化,我想避免组装新的 JAR。所以我希望提供 JAR 文件以外的资源。使用资源的典型方法访问这些文件将很棘手,所以我能想到的唯一方法是将它们视为文件系统中的常规文件(而不是资源本身)。
前进的道路是正确的吗?有哪些可能的替代解决方案。
可以使用 SQL 脚本作为资源并将它们发送到单独的文件夹而不是 JAR 中,但这可能没有意义。因为在这种情况下,简单地使用文件系统中的文件更为合理。
但是,如果有人想这样做,那么您需要
- 将该文件夹添加到 CP 中,以便您可以将文件作为资源访问
https://www.scala-sbt.org/1.x/docs/Classpaths.html
https://docs.huihoo.com/sbt/0.12.4/Detailed-Topics/Classpaths.html
- 从 JAR 中排除资源
sbt-assembly: How do I exclude the configuration files in src/main/resources
很多手册都说存储资源的规范方式是在项目的 resources
文件夹下。问题是,在组装一个项目之后,所有资源都进入了 JAR 中。在我的例子中,资源是 SQL 脚本,如果任何 SQL 脚本发生变化,我想避免组装新的 JAR。所以我希望提供 JAR 文件以外的资源。使用资源的典型方法访问这些文件将很棘手,所以我能想到的唯一方法是将它们视为文件系统中的常规文件(而不是资源本身)。
前进的道路是正确的吗?有哪些可能的替代解决方案。
可以使用 SQL 脚本作为资源并将它们发送到单独的文件夹而不是 JAR 中,但这可能没有意义。因为在这种情况下,简单地使用文件系统中的文件更为合理。
但是,如果有人想这样做,那么您需要
- 将该文件夹添加到 CP 中,以便您可以将文件作为资源访问
https://www.scala-sbt.org/1.x/docs/Classpaths.html
https://docs.huihoo.com/sbt/0.12.4/Detailed-Topics/Classpaths.html
- 从 JAR 中排除资源
sbt-assembly: How do I exclude the configuration files in src/main/resources