背景: 我正在将TypeScript集成到Play Framework(2.2.6)中,我正在尝试使用mumoshu的插件来执行此操作。问题是,在Windows机器上运行“play dist”时插件存在问题。 我已经从GitHub分叉代码,以便对源代码进行一些修改,以便我可以继续使用该插件。
问题: 我在传统的源代码结构中有一个play框架插件:
project/build.properties
project/Build.scala
project/plugins.sbt
src/main/scala/TypeScriptPlugin
src/main/scala/TypeScriptKeys.scala
...<other code>
我想将此插件包含到另一个项目中,但我真的不知道从哪里开始以及如何连接设置。
根据以前的建议,我已经能够将模块添加到我的项目中,如下所示:
// In project/Build.scala...
object ApplicationBuild extends Build{
lazy val typeScriptModule = ProjectRef(file("../../../play2-typescript"), "play2-typescript")
lazy val main = play.Project(<appName>, <appVersion>, <appDependencies>).settings(typescriptSettings: _*).dependsOn(typeScriptModule).aggregate(typeScriptModule)
}
在另一个项目中定义了typescriptSettings
...我想,我仍然不能100%确定除了添加此设置调用之外的typescriptSettings是什么,使插件能够正常工作。当我将插件包含在plugins.sbt
文件中并导入包com.github.mumoshu.play2.typescript.TypeScriptPlugin._
时,这个工作正常,但是现在我已经包含了源代码并明确包含了模块,我不能只导入包......或者至少不是我以前的方式。
我还是scala / sbt的新手,我很难在网上找到有用的资源。任何帮助,将不胜感激。
答案 0 :(得分:0)
有很多激活模板的例子。我有一个项目,我们遵循https://typesafe.com/activator/template/play-multidomain-auth路径。具体来说,要解决你的问题;可以在模块中访问根项目play-multidomain-auth / project /中的插件(play-multidomain-auth / modules / admin /,... / common和... / web)。
这个例子是我在使用多项目设计时看到的最干净的例子,但是这种观点非常主观。
我希望这会有所帮助。
答案 1 :(得分:0)
假设在同一个父目录中有两个目录:
play2-typescript
:这是mumoshu's play2-typescript play2-typescript-testapp
:您正在测试更改的播放应用你需要在play2-typescript-testapp
的{{1}}目录中创建一个这样的文件:
<强> play2-typescript.sbt 强>
project
注意:强>
相对路径是val metaBuild = (project in file(".")
dependsOn ProjectRef(file("../../play2-typescript"), "play2-typescript")
)
插件项目,相对于play2-typescript
内的project
目录。
将其更改为您的设置中的正确值,并考虑您也可以将其定义为绝对路径。