java - 将 Maven 与 Tomcat 一起使用时,将第 3 方库放在哪里?

标签 java maven tomcat

我是 Maven 的新手,我没有找到以下问题的正确答案。

例如,我有我的项目所依赖的库,例如:log4j、connector j、servlet api、junit、struts 等。当我只使用 Tomcat 时,我可以将这些 jars 放到 %CATALINA_HOME%\lib 文件夹并使用它们。

但是随着 Maven 的出现,我可以为所有依赖项及其范围配置 pom.xml

如果我这样做 - 我可以从 %CATALINA_HOME%\lib 文件夹中删除库吗?如果我可以,那么 Tomcat 怎么知道在哪里可以找到这个第 3 方 jar ?

%CATALINA_HOME%\lib 文件夹中放置 tomcat-native 库(tomcat-util、tomcat-juli、jasper 等)并在 中指定其他库是否是一个好习惯pom.xml

最佳答案

And Is it a good practice just to have tomcat-native libs (tomcat-util, tomcat-juli, jasper etc) in %CATALINA_HOME%\lib folder and specify other libs in pom.xml ?

是的,这确实是一个很好的做法。这样,您的 Tomcat 安装保持不变,您可以使用它来部署另一个 web 应用程序(可能具有另一组依赖项,或者另一个版本中的相同依赖项)。

Maven 会自动将依赖项放在 WEB-INF/lib 中您的最终 war 文件和 Tomcat(以及所有其他服务器)将在此目录中查找库。

顺便说一下,我注意到您在帖子中提到了 servlet-api。这个特定的依赖项由 Tomcat 提供,这意味着您不需要将它包含在您的最终 war 中。对于 Maven,这意味着您需要添加 <scope>provided</scope> 对此依赖。

关于java - 将 Maven 与 Tomcat 一起使用时,将第 3 方库放在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28638944/

相关文章:

java - 找出 YearMonth 实例的最后一天(在 LocalDate 中) - joda 库

java - Maven依赖可以执行吗?

java - JVM 自动重启

java - 在 Struts 2 中使用 getText() 获取属性

Java - 未知属性 MS-CHAP-Challenge

maven - IntelliJ错误:所有Maven和Gradle依赖项中的 “Cannot Resolve Symbol”

java - 定制 Java 包 JAXB wsimport

jsp - tomcat工作正常,但不知道哪里出了问题?

java - 使用 maven 时是否必须将 log4j.properties 放在 src/main/resources 中?

java - 使用泛型类型参数作为方法参数而不是使用对象类型有什么用?