【问题标题】:How tell Gradle where to look for javax.servlet?如何告诉 Gradle 在哪里寻找 javax.servlet?
【发布时间】:2020-07-11 14:41:54
【问题描述】:

我正在尝试使用 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 寻找的,但是我该如何指定它的路径呢?

【问题讨论】:

    标签: java gradle servlets build.gradle


    【解决方案1】:

    我们通常将 Servlet API 作为 compileOnly 依赖项添加到我们的项目中。这样 gradle 将使用 JAR 进行编译,但不会将其包含在部署中。在部署时,您的 web container 将提供 Servlet API。

    在你的依赖声明中添加这样的内容:

    compileOnly 'org.apache.tomcat:tomcat-servlet-api:9.0.37'

    理论上,使用本地 Tomcat 中的 Jar 是可行的,但我会避免非元数据依赖,因为将所有东西都“放在一个地方”通常更简单。

    也就是说,在构建中添加一个包含 JAR 的本地目录看起来像

    repositories {
        flatDir {
            dirs 'path/to/tomcat/libs'
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2018-07-08
      • 1970-01-01
      • 1970-01-01
      • 2014-03-05
      • 2014-12-02
      • 2021-05-26
      • 1970-01-01
      • 2018-10-26
      • 1970-01-01
      相关资源
      最近更新 更多