2014-05-14 33 views
2

我正在使用Maven 3.2.1Eclipse Kepler。我有一個動態的Web項目,它依賴於包含一些JSP的另一個組件。我現在希望來自依賴項的JSP成爲動態Web項目的Web根目錄的一部分。我選擇通過使用解壓縮目標maven-dependency-plugin來實現此目的。用maven-dependency-plugin強制解壓

我添加了一個插件定義,將JAR解壓到/target/m2e-wtp/web-resources。 Unfortunatley Eclipse不時清理該文件夾,並且JSP消失了。爲了再次打開它們,我必須刪除target/dependency-maven-plugin-markers文件夾。否則插件將不會再次解壓文件。

是否有可能強制拆包並忽略插件標記?

有沒有更好的方式從依賴關係中獲取Web資源到我的Dynamic Web Project?

回答

1

是的,有一個更好的辦法,但它並不與Tomcat的兼容「服務模塊,但不發佈」功能(或Weblogic的等價物)

刪除你的Maven的依賴,插件配置,並添加你的依賴作爲一個戰爭重疊代替。如果你的依賴是一場戰爭,它將被自動識別爲覆蓋(http://maven.apache.org/plugins/maven-war-plugin/overlays.html)。如果是zip或jar,則需要將特定配置添加到maven-war-plugin定義中。沿東西:

<plugin> 
    <artifactId>maven-war-plugin</artifactId> 
    <version>2.4</version> 
    <configuration> 
    <overlays> 
     <overlay> 
     <!-- /!\ must also be added as a project dependency--> 
     <groupId>foo</groupId> 
     <artifactId>bar</artifactId> 
     <type>jar</type> 
     <targetPath>relative/path/to/contextroot</targetPath> 
     </overlay> 
    </overlays> 
    </configuration> 
</plugin> 

部署之前,資源將目標/ M2E-WTP /覆蓋/酒吧version.jar下解壓/再部署到應用程序服務器

+0

嗯。真的沒有用。即使沒有配置覆蓋,Eclipse也會將WAR的依賴放入'target/m2e-wtp/overlays'中。但是,當我在Weblogic服務器中啓動Web項目時,找不到這些文件(本例中爲JSP)。 – schoenk

+0

也許嘗試部署爲分解檔案。 Weblogic似乎無法很好地處理多個網絡資源文件夾,當原位服務webapp時。請參閱http://stackoverflow.com/questions/21124864/m2e-wtp-overlay-not-loading-into-eclipse-published-ear-or-war-files/21169684#21169684 –

+0

但是,然後我會失去熱插拔和調試功能,不是嗎? – schoenk