将 Maven 与 Tomcat 一起使用时,将第 3 方库放在哪里?
Where to put 3rd party libs when using Maven with Tomcat?
我是 Maven 的新手,我没有找到以下问题的正确答案。
例如,我有我的项目所依赖的库,例如:log4j、connector j、servlet api、junit、struts 等。当我只使用 Tomcat 时,我可以将这个 jars 放到 %CATALINA_HOME%\lib
文件夹中并使用它们。
但是随着 Maven
的出现,我可以为所有依赖项及其范围配置 pom.xml
。
如果我这样做 - 我可以从 %CATALINA_HOME%\lib
文件夹中删除库吗?如果我可以那么 Tomcat
怎么知道在哪里可以找到这个第 3 方罐子?
在 %CATALINA_HOME%\lib
文件夹和在 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 将自动将依赖项放入最终 war 文件的 WEB-INF/lib
中,并且 Tomcat(以及所有其他服务器)将在此目录中查找库。
顺便说一下,我注意到您在 post 中提到了 servlet-api。这个特定的依赖项由 Tomcat 提供,这意味着您不需要将它包含在最终的 war 中。对于 Maven,这意味着您需要将 <scope>provided</scope>
添加到此依赖项中。
If I do it - can I remove libs from %CATALINA_HOME%\lib folder ?
是的。
If I can then how Tomcat knows where to find this 3rd party jars ?
类加载器知道,它必须查看您的 war/WEB-INF/lib Directory
。
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 ?
是的。
我是 Maven 的新手,我没有找到以下问题的正确答案。
例如,我有我的项目所依赖的库,例如:log4j、connector j、servlet api、junit、struts 等。当我只使用 Tomcat 时,我可以将这个 jars 放到 %CATALINA_HOME%\lib
文件夹中并使用它们。
但是随着 Maven
的出现,我可以为所有依赖项及其范围配置 pom.xml
。
如果我这样做 - 我可以从 %CATALINA_HOME%\lib
文件夹中删除库吗?如果我可以那么 Tomcat
怎么知道在哪里可以找到这个第 3 方罐子?
在 %CATALINA_HOME%\lib
文件夹和在 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 将自动将依赖项放入最终 war 文件的 WEB-INF/lib
中,并且 Tomcat(以及所有其他服务器)将在此目录中查找库。
顺便说一下,我注意到您在 post 中提到了 servlet-api。这个特定的依赖项由 Tomcat 提供,这意味着您不需要将它包含在最终的 war 中。对于 Maven,这意味着您需要将 <scope>provided</scope>
添加到此依赖项中。
If I do it - can I remove libs from %CATALINA_HOME%\lib folder ?
是的。
If I can then how Tomcat knows where to find this 3rd party jars ?
类加载器知道,它必须查看您的 war/WEB-INF/lib Directory
。
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 ?
是的。