2017-06-16 77 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問題更新)。 –