gpt4 book ai didi

java - 如何使用gradle指定对tomcat库的依赖

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:47:11 35 4
gpt4 key购买 nike

关于我的知识水平的一些背景知识:我目前正在尝试学习如何使用 gradle 构建项目。到目前为止,我对构建工具没有太多经验(几乎没有)。我确实了解总体思路,并且以前看过 ant 和 maven 文件,但从未自己编写过。到目前为止,我只是使用其他人的构建脚本或使用 Eclipse 配置我的构建。所以我在这里可能完全走错了路,如果是这样,请指出正确的方向。另外,遗憾的是,我没有太多手工制作 jar 的经验。

我有一个 Eclipse 项目,我想将其编译成一个 jar。所需的库 jar 在我的本地文件系统上。我设法让 gradle 通过

使用这些
dependencies {
compile fileTree(dir:'lib', include:'*.jar')
}

此外,我在 src/main/java 中有我的源文件,只需在 build.gradle 中使用 apply plugin: 'java' > 文件。据我所知,尝试使用 gradle build 构建项目似乎是正确的做法。

但是,据我所知,该库应该用于在 tomcat 上运行的 Web 项目,并使用 tomcat 提供的一些库。例如。我正在使用 javax.servlet.http.HttpServletRequest。该项目在 Eclipse 中运行良好,但我已将 tomcat 库添加到我的 Eclipse 构建路径中。当我检查 Eclipse 时,我可以看到 javax.servlet.http.HttpServletRequestservlet-api.jar 的一部分,而 servlet-api.jar 是 Tomcat 库的一部分。

现在,当我构建项目时出现构建错误,因为 java 编译器找不到类,因为我没有在依赖项中指定 servlet-api.jar。我想我可以以某种方式下载它(或者学习如何将它指定为外部依赖项以使 gradle 从某个存储库下载它)但我不确定这是否正确。

有没有办法告诉 gradle 使用 Eclipse 使用的同一个库?或者其他一些通用的方式来告诉它所有的 tomcat jar,就像我可以简单地在 Eclipse 中添加完整的 Tomcat 库一样?还是我真的需要这些 jar 的另一个副本,并且必须单独指定每个 jar ?

此外,我是否需要将这些库 jar 添加到我的构建结果库 jar 中?据我所知,我还需要将我依赖的任何 jar 添加到生成的 jar 中。但话又说回来,我在某处读到一些库是由 tomcat 本身提供的,因此它们必须是部署在其上的任何 war 的一部分。恐怕,我对如何构建要在 war 中使用的 jar 文件的组合感到困惑,该文件将部署到 tomcat 使用 gradle 我不知道我的问题来自这些部分中的哪一部分。我希望读到这篇文章的人可以帮助我理清思绪并为我指明正确的方向,或者至少告诉我如何将 Tomcat 库中包含的 jar 添加到我的 gradle 依赖项中。

最佳答案

使用 Gradle,无论何时将文件或目录添加为依赖项,它们都不会被视为完整的工件(具有组、名称和版本),而是被视为包含类的简单文件。这意味着 Gradle 不会对它们执行任何冲突解决,也不会拉取传递依赖。

对于您来说,只是为了开始,我建议只添加 tomcat 依赖项。确保它与 Eclipse 中的版本相同。

apply plugin: 'war'

repositories {
mavenCentral()
}

dependencies {
providedCompile 'org.apache.tomcat:tomcat-catalina:7.0.47'
}

另外,查看 Eclipse Integration Gradle作为长期解决方案的项目。

关于java - 如何使用gradle指定对tomcat库的依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20685286/

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