gpt4 book ai didi

java - SBT(简单构建工具): Change the build target "classes" directory

转载 作者:行者123 更新时间:2023-11-28 22:08:30 25 4
gpt4 key购买 nike

问题

对于 Java 网络应用程序,如果您将类放在您的开发计算机上网络服务器期望它们的位置,则可以节省您每次编译时打包和重新部署网络应用程序的步骤。它还简化了开发和部署目录结构相同的事情。 Tomcat's Standard Directory Layout是:

WEB-INF/
WEB-INF/classes
WEB-INF/lib

但是SBT想把所有的类都放在:

target/scala-2.10/classes

我如何告诉 sbt 将类放在 WEB-INF/classes 中?

背景

到目前为止,我一直只将 SBT 用于单元测试,我从 WEB-INF 而不是我的项目的根目录运行它,不用担心它抛出类的位置,因为测试不需要部署。我想我可以将 SBT 包装在一个批处理文件中,然后 cd 到 WEB-INF,然后 cd 在完成后返回,但这似乎有点麻烦。

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

额外学分...

我不确定这是否是新问题的一部分,但它属于“使用 SBT 构建 Java 网络应用程序”,所以我将其包括在内:像 log4j、Struts、proxool 和 Hibernate 这样的工具似乎都是期望在每次构建时将文件(和子目录递归地)从 src/main/resources 复制到 classes,并且我可以按照我的方式显式复制它们Ant 现在构建。但是,如果 SBT 有 web-app-defaults、maven-defaults 或 java-defaults 模板或其他东西,那将有助于了解。

最佳答案

我觉得应该是

target := base / "WEB-INF"

classDirectory := base / "WEB-INF" / "classes"

关于java - SBT(简单构建工具): Change the build target "classes" directory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21834922/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com