Edm*_*984 3 scala sbt playframework playframework-2.0
我需要有两个不同的项目,比如内部和外部,它们使用相同的数据层,我希望避免因干燥原因而复制配置文件.
我查看了http://www.playframework.org/documentation/2.0.2/SBTSubProjects上的子项目文档,但文档非常简短.
由于@Georg Engel,我现在意识到模块化配置的可能性
import sbt._
import Keys._
import PlayProject._
object ApplicationBuild extends Build {
val appName = "MyApp"
val appVersion = "1.0-SNAPSHOT"
val appDependencies = Seq(
// Add your project dependencies here,
)
lazy val common = Project(appName + "-common", file("modules/common"))
lazy val website = PlayProject(
appName + "-website", appVersion, path = file("modules/website")
).dependsOn(common)
lazy val adminArea = PlayProject(
appName + "-admin", appVersion, path = file("modules/admin")
).dependsOn(common)
lazy val main = PlayProject(appName, appVersion, appDependencies, mainLang = SCALA).settings(
// Add your own project settings here
).dependsOn(
website, adminArea
)
}
Run Code Online (Sandbox Code Playgroud)
我只有由于反向路由器而导致的编译错误(取消路由而不是控制器操作导致这种情况)
这就是我做和做过的事情.我创建了一个多模块Maven项目,我基本上保留了所有核心可重用代码.
然后对于我的所有其他Web项目(生成WAR的项目),我在某些情况下使用SBT,Gradle甚至Ant和Maven插件.那些项目拥有自己的配置(如db host和creds).
framework
- pom.xml
- db-module
- pom.xml
- src/main/resources # possible classpath loading config here
- etc...
- mail-module
- pom.xml
- etc...
- service-module
- pom.xml
- etc...
Run Code Online (Sandbox Code Playgroud)
其他项目只是依赖于框架和SBT项目(播放2.0)你可以设置它,以便你的一个解析器是一个本地maven回购:https://github.com/harrah/xsbt/wiki/Getting-Started -library依赖性
编辑澄清:框架pom.xml是父项目.您可以使邮件模块依赖于db-module,然后在单独的Web应用程序项目中,您可以依赖于邮件模块,您将同时获得mail-module和db -module.
许多人把Maven扔在公共汽车下,但它仍然比其他任何东西都更好地完成多模块项目.
更多解释:
在这里下载示例maven pom文件:http://www.sonatype.com/book/mvn-examples-1.0.zip ...第7章是多模块.
| 归档时间: |
|
| 查看次数: |
5055 次 |
| 最近记录: |