Dyl*_*lan 6 scala sbt xsbt-web-plugin
我正在开展的项目是Lift Framework 上的一个webapp .我们也在使用xsbt web插件.有一个"核心"项目,其中包含绝大多数功能; 我目前的目标是创建两个"分发"项目,为"核心"项目添加一组不同的类路径资源.问题是,我要么1)无法运行"分发"项目,要么2)让它们运行,但所需的资源似乎不存在.
我试过的
这是我的精简版project/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*/ )
Run Code Online (Sandbox Code Playgroud)
然后,在两个目录结构app1和app2,我有一个文件src/main/resources/aFileINeed.核心应用程序正在使用该class.getResource方法从类路径加载文件.
问题
如果我尝试运行其中一个分发项目container:start,则不会在类路径中检测到所需的文件.此外,它声称它src/main/webapp不是现有目录(该文件夹包含在核心项目中,因为xsbt web插件需要它).
我怎样才能让这些项目"合并"他们的资源?我期望使用aggregate或dependsOn在Build.scala项目定义中为我处理,但显然没有.
小智 5
这就是我在做什么。我在项目的根目录中创建一个全局“资源”目录,然后创建以下变量:
lazy val globalResources = file("resources")
Run Code Online (Sandbox Code Playgroud)
然后在每个项目的设置中:
unmanagedResourceDirectories in Runtime += globalResources
Run Code Online (Sandbox Code Playgroud)
对于使用xsbt-web-plugin或其他导入它的库的项目,您必须使用更强大的
unmanagedResourceDirectories in Compile += globalResources
Run Code Online (Sandbox Code Playgroud)
请注意,使用此解决方案时,如果您两次定义相同的文件,compile:copy-resources则您的项目可能会有多个资源目录和AFAIK,这会让您很生气。
| 归档时间: |
|
| 查看次数: |
1644 次 |
| 最近记录: |