使用xsbt web插件部署SBT war
我已经通过SBT项目配置了使用xsbt web插件进行web部署。描述这一点的文档似乎是: 这是我在阅读文档的基础上所做的: 我使用以下工具创建了plugins.sbt:使用xsbt web插件部署SBT war,sbt,war,xsbt-web-plugin,Sbt,War,Xsbt Web Plugin,我已经通过SBT项目配置了使用xsbt web插件进行web部署。描述这一点的文档似乎是: 这是我在阅读文档的基础上所做的: 我使用以下工具创建了plugins.sbt: resolvers+=“Web插件repo”at”http://siasia.github.com/maven2" addSbtPlugin(“com.earldouglas“%”xsbt web插件“%”0.9.0) 在build.sbt中添加了以下行: Seq(网站设置:*) //禁用.jar发布 publishAr
resolvers+=“Web插件repo”at”http://siasia.github.com/maven2"
addSbtPlugin(“com.earldouglas“%”xsbt web插件“%”0.9.0)
在build.sbt中添加了以下行:
Seq(网站设置:*)
//禁用.jar发布
publishArtifact in(Compile,packageBin):=false
//创建用于发布.war文件的工件
(编译、打包)中的工件:{
val-previous:Artifact=(在(编译,打包)中的工件)。值
previous.copy(`type`=“war”,extension=“war”)
}
//将.war文件添加到发布的内容中
addArtifact(工件在(编译、packageWar、packageWar)中)
使用sbt加载项目时,插件会被下载,但随后会报告以下错误:
[error] Reference to undefined setting:
[error]
[error] *:packageWar from *:$local (W:\Tempi\TempiJetty\build.sbt:48)
[error] Did you mean compile:packageWar ?
在最后一行写入compile:packageWar
而不是packageWar
,会导致不同的错误:
[info] Loading project definition from W:\Tempi\TempiJetty\project
W:\Tempi\TempiJetty\build.sbt:48: error: not found: type packageWar
addArtifact(artifact in (Compile, packageWar), compile:packageWar)
^
[error] Type error in expression
我应该写什么才能使我的SBT项目支持war打包?即使我删除最后一行
addArtifact(artifact in(Compile,packageWar),packageWar)
,SBT
中的package
命令仍然构建war
文件。这可能是我正在使用的SBT 0.13的新版本或特定版本(文档似乎比较旧),也可能是为了打包war文件,即使使用了我不需要的编译命令。嗨,Suma,你能澄清一下这个问题吗?我维护xsbt web插件,所以我想确保这些文档尽可能有用。您的问题听起来像是要构建WAR文件,但您的评论听起来像是要避免构建WAR文件。期望的目标是什么?这与打包WAR文件有关吗?您有兴趣将WAR文件部署到服务器吗?@James我想构建一个WAR文件(在Jenkins上完成,然后使用ant构建部署WAR)。我不太明白这需要什么。也许“Publishing.war files”中提到的部分根本没有必要?在这种情况下,您只需要从sbt运行package
,或者从命令行运行sbt package
。这将在target/scala_2.10/…下生成一个WAR文件。。。。在上面的build.sbt中,除了seq(webSettings:*)
之外,您不需要其他任何东西。您可能还发现了一些有用的方法。他们将引导您完成配置,最终构建WAR文件。