java - 如何告诉 Gradle 在哪里寻找 javax.servlet?
问题描述
我正在尝试使用 gradle 作为构建系统制作一个 servlet 应用程序。问题是 gradle 找不到 javax.servlet,我收到了这个错误:
Could not find javax.servlet:javax.servlet-api:4.0
我从官网下载了Tomcat9,解压到~/opt/tomcat9。有 ~/opt/tomcat9/lib 文件夹,servlet-api.jar 所在的位置。我猜这个 jar 文件是 gradle 寻找的,但是我如何指定它的路径呢?
解决方案
我们通常将 Servlet API 作为 compileOnly 依赖项添加到我们的项目中。这样 gradle 将使用 JAR 进行编译,但不会将其包含在部署中。在部署时,您的Web 容器将提供 Servlet API。
将类似这样的内容添加到您的依赖项声明中:
compileOnly 'org.apache.tomcat:tomcat-servlet-api:9.0.37'
从理论上讲,使用本地 Tomcat 中的 Jar 是可能的,但我会避免非元数据依赖,因为将所有东西都“放在一个地方”通常更简单。
也就是说,在构建中添加一个包含 JAR 的本地目录看起来像
repositories {
flatDir {
dirs 'path/to/tomcat/libs'
}
}
推荐阅读
- python - /admin/budget/expense/add/ 处的 OperationalError
- python - TclError:无效的命令名称“.!frame.!canvas”
- thingsboard - Thingsboard 电子邮件未发送警报
- android - 由于 gradle 文件中的错误,构建失败
- javascript - 浏览器后退/前进按钮加载多个 CKEditor 表单
- amazon-web-services - 如何在 CloudFormation 模板中引用现有 AWS 证书?
- firebase - 每个 X 周期用函数替换 firebase 数据?
- vba - 如何填写网页上的文本字段?
- django - 支持使用 HTTP / REST 下载部分文件
- jquery - 使用 i 标签而不是下拉按钮的背景属性来切换效果