Java 将MySQL连接器JAR放在my WAR的WEB-INF/lib中,而不是放在$CATALINA_HOME/common/lib中?

Java 将MySQL连接器JAR放在my WAR的WEB-INF/lib中,而不是放在$CATALINA_HOME/common/lib中?,java,mysql,tomcat,maven-2,Java,Mysql,Tomcat,Maven 2,我将在Tomcat5.5.x服务器上使用MySQL和Hibernate 我是否必须将mysql连接器java-[version]-bin.jar放在$CATALINA_HOME/common/lib/中,或者我是否可以将它与其他库依赖项一起放在WAR文件的WEB-INF/lib中 在我的WAR中使用WEB-INF/lib会更容易,因为我可以使用Maven存储库以这种方式获得它。把它放在那里而不是放在Tomcat的common libraries目录中有什么大的缺点吗?如果您的jar是公用的,那么

我将在Tomcat5.5.x服务器上使用MySQL和Hibernate

我是否必须将
mysql连接器java-[version]-bin.jar
放在
$CATALINA_HOME/common/lib/
中,或者我是否可以将它与其他库依赖项一起放在WAR文件的
WEB-INF/lib


在我的WAR中使用
WEB-INF/lib
会更容易,因为我可以使用Maven存储库以这种方式获得它。把它放在那里而不是放在Tomcat的common libraries目录中有什么大的缺点吗?

如果您的jar是公用的,那么它将在Tomcat中全局加载。每个网络应用都能看到它。如果你把它放在你的webapp中,只有你的webapp才能看到它。我假设Boris所指的是,如果全局tomcat配置的某个部分加载了需要mysql连接(如连接池)的东西,那么它将需要jdbc驱动程序,因此它将需要它的共同点。否则,不会

我相信您可以在tomcat配置中设置一个安全配置,将其配置存储在数据库中。如果你用这个,它需要一个司机

你为什么想要webapp/WEB-INF/lib中的东西?嗯,因为它是模块化的,它是你的网络应用程序的一部分,如果你把你的网络应用程序移到其他地方,它不需要额外的部分,这是tomcat安装的一部分。如果你可以直接将你的webapp放到一个普通的tomcat安装中,那么维护就容易多了。另一个原因——如果你有多个webapp,它们都会共同使用jar,这可能会导致库冲突和版本问题

总的来说,尽可能少地把共同点放在一起。即使你只有一个应用程序