Java SBT(简单构建工具):更改构建目标;“类”;目录 问题:

Java SBT(简单构建工具):更改构建目标;“类”;目录 问题:,java,scala,tomcat,web-applications,sbt,Java,Scala,Tomcat,Web Applications,Sbt,对于JavaWeb应用程序,如果您将类放在开发机器上web服务器期望的位置,则可以节省每次编译web应用程序时打包和重新部署web应用程序的步骤。它还简化了开发和部署目录结构。是: 但SBT希望将所有课程纳入: target/scala-2.10/classes 我如何告诉sbt将类放在WEB-INF/classes中 背景 到目前为止,我只在单元测试中使用SBT,我从WEB-INF运行它,而不是从项目的根目录运行它,并且不担心它将类抛出到哪里,因为不需要部署测试。我想我可以将SBT封装在一个

对于JavaWeb应用程序,如果您将类放在开发机器上web服务器期望的位置,则可以节省每次编译web应用程序时打包和重新部署web应用程序的步骤。它还简化了开发和部署目录结构。是:

但SBT希望将所有课程纳入:

target/scala-2.10/classes
我如何告诉sbt将类放在
WEB-INF/classes

背景 到目前为止,我只在单元测试中使用SBT,我从
WEB-INF
运行它,而不是从项目的根目录运行它,并且不担心它将类抛出到哪里,因为不需要部署测试。我想我可以将SBT封装在一个批处理文件中,将cd刻录到WEB-INF,完成后再将cd刻录回,但这似乎有点笨拙

人们如何解决这个问题?我可以在每次构建之后删除
WEB-INF/classes
,然后删除
target/scala-2.10/classes
,但这可能会消除SBT提供的增量/最小编译的一些好处

额外学分。。。 我不确定这是否是一个新问题的一部分,但它属于“使用SBT构建Java web应用程序”的范畴,因此我将把它包括在内:log4j、Struts、proxool和Hibernate等工具似乎都希望在每次构建时将文件(和子目录)从
src/main/resources
复制到
classes
,我可以像现在使用Ant构建一样显式地复制它们。但是,如果SBT有一个web应用默认值、maven默认值或java默认值模板之类的东西,那么了解它会很有帮助。

我认为应该是这样

target := base / "WEB-INF"


你看过xsbt web插件()吗?这可以满足你的需要。但不知道它是否适用于sbt 0.13。
target := base / "WEB-INF"
classDirectory := base / "WEB-INF" / "classes"