使用xsbt web插件部署SBT war

使用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

我已经通过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发布
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文件。