2013-07-03 57 views
0

我有一個自定義類加載器jar <scope>provided</scope>,它必須在我的webapp運行之前在tomcat/lib中,否則它無法啓動。我正在使用WTP。有什麼方法可以配置M2E/WTP在部署過程中自動將此自定義jar複製到tomcat/lib?M2E WTP複製提供罐子

編輯:

它不必使用WTP,我還可以使用,例如,使用的tomcat6-Maven的插件的解決方案。

+0

使用提供的範圍,您將其標記爲由服務器容器提供。如果它啓動失敗,可能是因爲服務器不可用。您是否嘗試過忽略範圍? –

+0

如果我使用默認範圍,它將依賴項複製到WEB-INF/lib,並且不可用作類加載器。這個jar需要在tomcat/lib中。 – Ring

+0

爲什麼不直接將jar複製到該目錄?我懷疑你可以用Maven或WTP來實現類似的功能。 –

回答

1

對於使用Tomcat Maven插件運行嵌入式Tomcat實例,添加Tomcat lib dir中所需的JAR作爲Tomcat插件本身的依賴關係,如in this example所示,具有derby和javamail依賴關係。

+0

這是行得通的,但現在它破壞了,因爲classloader jar依賴於WEB-INF/lib中的另一個jar,並且找不到它。 – Ring

+0

從Tomcat的'lib'目錄中的JAR加載的類類將無法看到您的webapp類 - 請參閱[Tomcat的類加載器頁面](https://tomcat.apache.org/tomcat-6.0-doc/class-loader- howto.html)的解釋。 Tomcat的'lib'目錄使用'common'類加載器,你的webapp是'common'的子類,子類加載器只能看到父類,父類不能看到子類。我可以問你想從Tomcat的通用類加載器中加載哪些需要查看你的webapp類的東西嗎?也許還有另一種解決方案? – prunge