scala – 如何在SBT中的项目之间共享资源
发布时间:2020-12-16 18:38:05 所属栏目:安全 来源:网络整理
导读:我正在开展的项目是 Lift框架上的webapp.我们也在使用 xsbt web plugin.有一个“核心”项目,其中包含绝大多数功能;我目前的目标是创建两个“分发”项目,为“核心”项目添加一组不同的类路径资源.问题是,我要么1)无法运行“分发”项目,要么2)让它们运行,但所
我正在开展的项目是
Lift框架上的webapp.我们也在使用
xsbt web plugin.有一个“核心”项目,其中包含绝大多数功能;我目前的目标是创建两个“分发”项目,为“核心”项目添加一组不同的类路径资源.问题是,我要么1)无法运行“分发”项目,要么2)让它们运行,但所需的资源似乎不存在.
我试过的 这是我的项目/ Build.scala的删节版本: lazy val core = Project("Core",file("core")) .settings( /*some dependencies,resolvers,webSettings */ ) lazy val app1 = Project("App1",file("app1")) .aggregate(core) .settings( /*the same settings as core */ ) lazy val app2 = Project("App2",file("app2")) .aggregate(core) .settings( /*the same settings as core*/ ) 然后在app1和app2的目录结构中,我在src / main / resources / aFileINeed上有一个文件.核心应用程序使用class.getResource方法从类路径加载文件. 问题 如果我尝试运行其中一个分发项目,使用container:start,它不会检测类路径中的所需文件.此外,它声称src / main / webapp不是现有目录(该文件夹包含在核心项目中,因为xsbt web插件需要它). 我怎样才能让这些项目“合并”他们的资源?我期望在Build.scala项目定义中使用aggregate或dependsOn可以为我处理,但它显然没有. 解决方法
这就是我正在做的事情.我在项目的根目录中创建一个全局“资源”目录,然后是以下变量:
lazy val globalResources = file("resources") 然后在每个项目的设置中: unmanagedResourceDirectories in Runtime += globalResources 对于使用xsbt-web-plugin或其他导入它的库的项目,您必须使用更强大的项目 unmanagedResourceDirectories in Compile += globalResources 请注意,使用此解决方案,如果您将同一文件定义两次编译,您的项目可能会有多个资源目录和AFAIK:copy-resources会对您生气. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |