2017-06-16 61 views
0

我有一个可执行的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.loadercatalina.properties,因为我无法控制由maven插件生成的此文件。

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

回答

0

实际上,任何jar文件都位于WAR文件classloader的classpath中,位于WEB-INF/lib的WAR文件内。因此,你可以将你的附加jar打包成战争。 我不熟悉maven tomcat插件,只是看看它的选项。它必须有能力把附加的jar放到war文件中(也许只是通过compile或'runtime`范围内的依赖关系,这是一个标准功能

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

+0

谢谢但我的附加jar必须在war /可执行jar我认为-cp被忽略当我们使用它与-jar。我已经尝试过,它不接缝工作。此外,我不想指定一个硬编码路径的MANIFEST.MF中的lib问题更新)。 –