在嵌入Tomcat的jar中提供额外的类路径
问题描述:
我有一个可执行的jar文件,其中包含一个由Tomcat7-maven-plugin创建的嵌入式Tomcat:tomcat7:exec-war。在嵌入Tomcat的jar中提供额外的类路径
我需要为某些Jar提供额外的类路径,因为我无法将它们直接包含在我的可执行文件Jar中。我怎样才能提供这个类路径?
- 之前,我启动我的可执行的JAR文件,因为
catalina.sh/.bat
清除CLASSPATH
值我不能执行export CLASSPATH
。 - 我无法提供
setenv.sh/.bat
,因为可执行文件Jar是由maven插件创建的。 - 我无法更新属性
common.loader
从catalina.properties
,因为我无法控制由maven插件生成的此文件。
注意:我不想在可执行文件Jar中指定lib的硬编码路径。
答
实际上,任何jar文件都位于WAR文件classloader的classpath中,位于WEB-INF/lib的WAR文件内。因此,你可以将你的附加jar打包成战争。 我不熟悉maven tomcat插件,只是看看它的选项。它必须有能力把附加的jar放到war文件中(也许只是通过compile
或'runtime`范围内的依赖关系,这是一个标准功能
如果你的附加jar必须在战争之外,你必须在系统中给它当你运行你的可执行jar(通过-cp参数,我猜)你可以在你的jar文件的MANIFEST.MF文件中定义它的路径
谢谢但我的附加jar必须在war /可执行jar我认为-cp被忽略当我们使用它与-jar。我已经尝试过,它不接缝工作。此外,我不想指定一个硬编码路径的MANIFEST.MF中的lib问题更新)。 –