Package 多项目战争包装
我一直在试图找到将由多个项目组成的web应用程序打包到单个war中的方法。我为sbt找到的唯一有用的插件是xsbt web插件。我试图在github托管的项目中使用War插件,但web-INF/lib中只包含web项目的反依赖项(不是构建中定义的其他项目,也不是它们的依赖项)。我的生成文件是:Package 多项目战争包装,package,war,sbt,multi-project,Package,War,Sbt,Multi Project,我一直在试图找到将由多个项目组成的web应用程序打包到单个war中的方法。我为sbt找到的唯一有用的插件是xsbt web插件。我试图在github托管的项目中使用War插件,但web-INF/lib中只包含web项目的反依赖项(不是构建中定义的其他项目,也不是它们的依赖项)。我的生成文件是: import sbt._ import Keys._ import com.github.siasia._ import WarPlugin.warSettings object BuildSettin
import sbt._
import Keys._
import com.github.siasia._
import WarPlugin.warSettings
object BuildSettings {
import Dependencies._
val buildOrganization = "ar.edu.itba.it"
val buildVersion = "1.27"
val hibernateVersion = "3.6.7.Final"
val guiceVersion = "3.0"
val wicketVersion = "1.5.4"
val jerseyVersion = "1.12"
val buildSettings = Defaults.defaultSettings ++ Seq(
organization := buildOrganization,
version := buildVersion,
crossPaths := false,
publishArtifact in (Compile, packageDoc) := false,
publishArtifact in (Compile, packageSrc) := false,
parallelExecution in ThisBuild := false,
libraryDependencies ++= Seq(slf4j_api, slf4j_log4j12, junit, hamcrest_all, mockito_all, h2, joda_time, guava, junit_interface),
javacOptions ++= Seq("-source", "1.6", "-target", "1.6"),
testOptions += Tests.Argument(TestFrameworks.JUnit))
}
object SgaBuild extends Build {
import BuildSettings._
import Dependencies._
import com.github.siasia.WebPlugin._
val compileAndTest = "test->test;compile->compile"
lazy val root = Project(id = "sga", base = file(".")) aggregate (itba_common, itba_common_wicket, itba_common_jpa, jasperreports_fonts_extensions, sga_backend, sga_rest, sga_wicket) // settings (rootSettings: _*)
lazy val itba_common = Project(id = "itba-common", base = file("itba-common")) settings (buildSettings: _*)
lazy val itba_common_jpa = Project(id = "itba-common-jpa", base = file("itba-common- jpa")) dependsOn (itba_common % compileAndTest) settings (buildSettings: _*)
lazy val itba_common_wicket = Project(id = "itba-common-wicket", base = file("itba- common-wicket")) dependsOn (itba_common % compileAndTest, itba_common_jpa % compileAndTest) settings (buildSettings: _*)
lazy val jasperreports_fonts_extensions = Project(id = "jasperreports-fonts- extensions", base = file("jasperreports-fonts-extensions")) settings (buildSettings: _*)
lazy val sga_backend = Project(id = "sga-backend", base = file("sga- backend")) dependsOn (itba_common % compileAndTest, itba_common_jpa % compileAndTest) settings (buildSettings: _*)
lazy val sga_rest = Project(id = "sga-rest", base = file("sga-rest")) dependsOn (sga_backend % compileAndTest) settings (buildSettings: _*)
lazy val sga_wicket = Project(id = "sga-wicket", base = file("sga-wicket")) dependsOn (sga_backend % compileAndTest, sga_rest % compileAndTest, itba_common_wicket % compileAndTest) settings ((buildSettings ++ warSettings(Compile)):_*)
}
object Resolvers {
val wicketStuff = "Wicket Stuff Repository" at "http://wicketstuff.org/maven/repository"
}
object Dependencies {
import BuildSettings._
... // (plenty of ModuleIDs that are refered from 7 XXX.sbt)
}
从插件代码看,它似乎将完整类路径配置中的所有文件复制到lib目录中,但在检查完整配置时,它并没有包括所有必需的jar(其他7个项目中的jar及其依赖项)
这是正确的插件使用还是有另一个
提前谢谢