在具有嵌入式Tomcat的jar上提供其他类路径

时间:2017-06-16 16:04:35

标签: java maven tomcat

我有一个包含嵌入式Tomcat的可执行jar,这是由tomcat7-maven-plugin创建的:tomcat7:exec-war。

我需要为某些Jar提供额外的类路径,因为我不能将它们直接包含在我的可执行文件Jar中。我该如何提供此类路径?

  • 我启动可执行文件Jar之前无法执行export CLASSPATH,因为catalina.sh/.bat会删除CLASSPATH值。
  • 我无法提供setenv.sh/.bat,因为可执行Jar是由maven插件创建的。
  • 我无法从common.loader更新属性catalina.properties,因为我无法控制maven插件生成的此文件。

注意:我不想在可执行文件Jar中指定lib的硬编码路径。

1 个答案:

答案 0 :(得分:0)

实际上WEB-INF / lib中WAR文件中的任何jar文件都在WAR文件类加载器的类路径中。  所以,你可以将你的额外jar包装成战争。 我不熟悉maven tomcat插件,但只是看看它的选项。它必须能够将其他jar放入war文件中(可能只是通过compile或'runtime`范围内的依赖项。这是一个标准功能。

如果你的额外jar必须在战争之外,你必须在运行可执行jar的Java系统类路径中给它(通过-cp参数,我猜)。或者您可以在jar的MANIFEST.MF文件中定义它的路径。