Scala 如何从sbt插件内部访问PlayRunHooks和PlayKeys

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应用程序

我想将Ember CLI的工作流程包括在一个剧本中!应用我决定编写一个
sbt
插件,当在play应用程序构建中启用该插件时,它将完成以下几项工作:

  • 添加一个任务以运行“ember new”在子目录中创建UI项目
  • 添加一个
    PlayRunHook
    ,这样当从ActivatorShell执行
    run
    时,它还可以通过设置适当的代理来启动为EmberJS应用程序提供服务的节点服务器,从而将api调用代理给该播放!应用程序
  • 调用包时,它也会打包EmberJS应用程序
  • 正确设置UI资产以包括EmberJS应用程序
  • 问题是我无法找到如何添加依赖项,以便在我的sbt插件中使用
    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插件。我想创建类似的东西,你解决了你的问题了吗?我想创建类似的东西,你解决了你的问题了吗?