2012-04-04 22 views
1

我認爲這是通過在Tomcat中自動發佈的舉動促成的變化,但基本上,它看起來像我在eclipse中有一個使用戰爭疊加的項目,正在從本地父項目中複製資源,而不是該父項目的戰爭文件。父項目中正在進行大量的構建,並且拉取文件不起作用,因此我需要將子項目放在父項目戰爭文件中。想法如何做到這一點?Eclipse,Tomcat,m2e和來自神器的戰爭覆蓋

*編輯 - 一些更多的細節。

的覆蓋工作,並在POM被指定爲:

<dependency> 
    <groupId>org.parentproject</groupId> 
    <artifactId>parentproject-web</artifactId> 
    <version>2.0-SNAPSHOT</version> 
    <type>war</type> 
</dependency> 

這導致了org.eclipse.wst.common.component

<?xml version="1.0" encoding="UTF-8"?> 
<project-modules id="moduleCoreId" project-version="1.5.0"> 
<wb-module deploy-name="eurekastreams-web-ym2"> 
    <wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/> 
    <wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/> 
    <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/> 
    <dependent-module deploy-path="/" handle="module:/overlay/prj/parentproject-web?includes=**/**&amp;excludes=META-INF/MANIFEST.MF"> 
     <dependency-type>consumes</dependency-type> 
    </dependent-module> 
    <dependent-module deploy-path="/" handle="module:/overlay/slf/?includes=**/**&amp;excludes=META-INF/MANIFEST.MF"> 
     <dependency-type>consumes</dependency-type> 
    </dependent-module> 
    <property name="context-root" value="parentproject-web-childproject"/> 
    <property name="java-output-path" value="/parentproject-web-childproject/target/classes"/> 
</wb-module> 

+0

能否請您詳細闡述你這意味着「在父項目中有很多構建,並且拉取文件不起作用,我需要將子項目建立在父項目戰爭文件的基礎之上。關於如何做到這一點的想法? – 2012-04-05 13:51:48

+0

由父項目創建的最終戰爭,它本身是一個複雜構建的結果,具有自己的戰爭覆蓋,gwt compilationsm文件和文件夾包含等。現在,當我查看正在部署在我的文件子項目中,只有父項目中存在的文件正在被複制,而不是targer/war文件夾中存在的所有文件。這些文件是在我做一個maven包之後在子項目的target/war文件夾中,但看起來eclipse/m2e/wtp並不在那裏 – chrismarx 2012-04-05 13:58:34

回答

0

看來,答案是到目標文件夾添加到部署組件:

<wb-resource deploy-path="/" source-path="/target/ROOT"/> 

其中ROOT是結果的目標build文件夾Maven的戰爭overlay-

+0

我打算把這個標記爲正確的答案,除非有人能夠指出這樣做有更好的方法 - – chrismarx 2012-04-09 14:03:23

+0

Yuck,這是怎麼回事爲你工作? Maven-> Update有任何問題?似乎像編輯任何一個。文件,並可能是一個糟糕的方向採取... _可能必須走這條路線_ – Lucas 2013-10-04 15:32:30

+0

還沒有觸及過這個年齡段,我認爲這是我前進的解決方案 - – chrismarx 2013-10-04 16:04:37

0

您以下需要安裝m2e-wtp extension來處理WAR覆蓋。然後你將overlay項目聲明爲dependency,並且也應該在你的Eclipse Workspace中使用它。

+0

嗨,已經安裝了來自JBoss的WTP的Maven集成,並且戰爭覆蓋是工作,但我想覆蓋來自父項目的戰爭文件,而不是父項目的當前狀態。我將用更多的代碼編輯這個問題 – chrismarx 2012-04-04 20:35:59

+0

您是否嘗試從Eclipse工作區刪除覆蓋項目或關閉它? – 2012-04-05 14:05:51

+0

好的,這讓我感動了正確的方向,即時發佈實際的解決方案 - – chrismarx 2012-04-05 15:17:53