我有一个包含嵌入式Tomcat的可执行jar,这是由tomcat7-maven-plugin创建的:tomcat7:exec-war。
我需要为某些Jar提供额外的类路径,因为我不能将它们直接包含在我的可执行文件Jar中。我该如何提供此类路径?
export CLASSPATH
,因为catalina.sh/.bat
会删除CLASSPATH
值。setenv.sh/.bat
,因为可执行Jar是由maven插件创建的。common.loader
更新属性catalina.properties
,因为我无法控制maven插件生成的此文件。注意:我不想在可执行文件Jar中指定lib的硬编码路径。
答案 0 :(得分:0)
实际上WEB-INF / lib中WAR文件中的任何jar文件都在WAR文件类加载器的类路径中。
所以,你可以将你的额外jar包装成战争。
我不熟悉maven tomcat插件,但只是看看它的选项。它必须能够将其他jar放入war文件中(可能只是通过compile
或'runtime`范围内的依赖项。这是一个标准功能。
如果你的额外jar必须在战争之外,你必须在运行可执行jar的Java系统类路径中给它(通过-cp参数,我猜)。或者您可以在jar的MANIFEST.MF文件中定义它的路径。