sbt, . .
1) "project" , *.
2) "project/Build.scala" . destPath . Google App Engine war .
import sbt._
import Keys._
object MyBuild extends Build {
lazy val copyDependencies = TaskKey[Unit]("copy-dependencies")
def copyDepTask = copyDependencies <<= {
(dependencyClasspath in Runtime, baseDirectory) map { (dep, bp) =>
for (attrSrcPath <- dep) {
val srcPath = attrSrcPath.data
println(srcPath);
if (!srcPath.isDirectory) {
val destPath = bp / "war/WEB-INF/lib" / srcPath.getName
IO.copyFile(srcPath, destPath, preserveLastModified=true)
}
else {
val destPath = bp / "war/WEB-INF/classes/"
IO.copyDirectory(srcPath, destPath, preserveLastModified=true)
}
}
}
lazy val webapp = Project("webapp", file("sharedlibrary/webapp"))
lazy val module1 = Project("module1", file("module1"),
settings = Project.defaultSettings ++ Seq(copyDepTask)
) dependsOn(webapp)
lazy val module2 = Project("module2", file("module2"),
settings = Project.defaultSettings ++ Seq(copyDepTask)
) dependsOn(webapp)
lazy val module3 = Project("module3", file("module3"),
settings = Project.defaultSettings ++ Seq(copyDepTask)
) dependsOn(webapp)
}
3) sbt, project module1 copy-dependencies, sbt webapp module1 war/WEB-INF/classes war/WEB-INF/lib.
Google App Engine appspot, , -.