2016-08-19 20 views
0

我想將Ember CLI的工作流程包含到Play中!應用。我決定寫一個sbt插件,在應用程序中建立劇中啓用時,將做幾件事情:如何從sbt插件中訪問PlayRunHooks特性和PlayKeys

  1. 添加任務運行「燼新」來創建一個子目錄的UI項目。
  2. 添加PlayRunHook,以便當從激活器shell執行run時,它還通過設置適當的代理啓動服務於EmberJS應用程序的節點服務器,以便將API調用代理到Play!應用。
  3. 當調用包時,它還打包EmberJS應用程序。
  4. 正確設置UI資產以包含EmberJS應用程序。

的問題是我無法找出如何添加依賴關係,我可以用我的SBT插件PlayRunHook特點和PlayKeys

我想使用插件路由,因爲將來我可能會有更多的服務具有相同類型的工作流。

更新:

我無法找到一種方法來創建這個插件,因爲我無法從該插件訪問PlayRunHook。但是,我已經實施了我想要的種子項目。鏈接:https://github.com/dipayanb/play-ember-seed

在編寫sbt插件時,我無法編寫類似https://github.com/dipayanb/play-ember-seed/blob/master/project/EmberRunner.scala的類,因爲我無法從插件內部編譯代碼。

回答

0

沒有看到您用來嘗試和實現插件的代碼,這將很難回答,但總之您需要添加Play!插件您的插件的構建定義。即以同樣的方式像往常一樣加,裏面你的插件的project/plugins.sbt

addSbtPlugin("com.typesafe.play" % "sbt-plugin" % playVersion) 

因爲SBT是遞歸的,這是不夠的,你的項目有,你要訪問的插件:插件需要加載插件本身。

+0

謝謝@NathanielFord。 我已經用我能解決問題的最好方法更新了我的問題。請看看你的方便程度,如果可能的話,引導我走向最終目標,即把它放入一個sbt-plugin。 – Dipayan