Scala 如何从sbt插件内部访问PlayRunHooks和PlayKeys
我想将Ember CLI的工作流程包括在一个剧本中!应用我决定编写一个Scala 如何从sbt插件内部访问PlayRunHooks和PlayKeys,scala,ember.js,playframework,sbt,Scala,Ember.js,Playframework,Sbt,我想将Ember CLI的工作流程包括在一个剧本中!应用我决定编写一个sbt插件,当在play应用程序构建中启用该插件时,它将完成以下几项工作: 添加一个任务以运行“ember new”在子目录中创建UI项目 添加一个PlayRunHook,这样当从ActivatorShell执行run时,它还可以通过设置适当的代理来启动为EmberJS应用程序提供服务的节点服务器,从而将api调用代理给该播放!应用程序 调用包时,它也会打包EmberJS应用程序 正确设置UI资产以包括EmberJS应用程序
sbt
插件,当在play应用程序构建中启用该插件时,它将完成以下几项工作:
PlayRunHook
,这样当从ActivatorShell执行run
时,它还可以通过设置适当的代理来启动为EmberJS应用程序提供服务的节点服务器,从而将api调用代理给该播放!应用程序PlayRunHook
trait和PlayKeys
我想使用插件路线,因为在未来,我可能会有更多的服务,将有相同的工作流程
更新:
我无法找到创建此插件的方法,因为我无法从该插件访问PlayRunHook
。但是,我已经实现了我想要的作为种子项目。链接:
在编写sbt插件时,我无法编写类似的类,因为我无法从插件内部编译代码。如果看不到您用于尝试和实现插件的代码,这将很难回答,但简而言之,您需要添加播放!插件到插件的构建定义。以与平常相同的方式添加到插件的
项目/plugins.sbt
:
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % playVersion)
因为SBT是递归的,所以您的项目只有您尝试访问的插件是不够的:您的插件需要加载插件本身。如果没有看到您尝试和实现插件所使用的代码,这将很难回答,但简而言之,您需要添加播放!插件到插件的构建定义。以与平常相同的方式添加到插件的
项目/plugins.sbt
:
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % playVersion)
因为SBT是递归的,所以您的项目只有您试图访问的插件是不够的:您的插件需要加载插件本身。谢谢@NathanielFord。我已经尽我所能更新了我的问题。请看一下您的便利性,如果可能的话,请指导我实现我的最终目标,将其放入sbt插件。谢谢@NathanielFord。我已经尽我所能更新了我的问题。请看一下你的便利性,如果可能的话,指导我实现我的最终目标,将其放入sbt插件。我想创建类似的东西,你解决了你的问题了吗?我想创建类似的东西,你解决了你的问题了吗?