scala – SBT:访问子项目的托管资源?
发布时间:2020-12-16 18:30:10 所属栏目:安全 来源:网络整理
导读:在SBT插件中,我正在尝试访问子项目的托管资源. 这是构建文件: import sbt._import Keys._import play.Project._object ApplicationBuild extends Build { val appName = "demo" val appVersion = "1.0-SNAPSHOT" val appDependencies = Seq( "org.jruby" %
在SBT插件中,我正在尝试访问子项目的托管资源.
这是构建文件: import sbt._ import Keys._ import play.Project._ object ApplicationBuild extends Build { val appName = "demo" val appVersion = "1.0-SNAPSHOT" val appDependencies = Seq( "org.jruby" % "jruby-complete" % "1.7.1" ) val widgets = play.Project("widgets",appVersion,appDependencies,path = file("widgets")) val main = play.Project(appName,path = file("demo")) .dependsOn(widgets) } 我正在使用plugins.sbt中定义的SBT插件. 现在,我需要在编译父项目(演示)期间使用子项目(小部件)中的资源文件. 到目前为止,我最接近的是buildDependencies设置键 – 但我只获得了ProjectRef对象,唯一的信息是构建基础和项目ID.我找不到进入该项目资源目录的方法. 解决方法
我不熟悉编写插件,但至少在你的build.sbt中你可以
define the resource file.
或者,再次在build.sbt中你可以create a “common” project that others reference,如: lazy val common = (project in file("common")) .settings( Seq( includeFilter in unmanagedResources := new SimpleFileFilter(_.getCanonicalPath.startsWith((sourceDirectory.value / "main" / "resources").getCanonicalPath)) ) ) 然后其他代码(例如任务)可以引用它,如: lazy val doSomething = taskKey[Seq[File]]("Does something useful") lazy val doSomethingSetting = doIt := { val resourceDir = (resourceDirectory in common in Compile).value println(resourceDir) } 所以你的其他项目可以运行这个或reference that directory 希望有一种直接的方法来实现插件与构建的解决方案之一? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |