2012-11-13 52 views
1

我們使用Maven構建一個包含WAR的EAR刪除重複的罈子,罈子裏被複制在兩個EAR的根和WAR的lib文件夾中,我讀到了瘦罐子從戰爭中取出瓶子,但我不要這樣做,因爲我想保持WAR作爲獨立單元,
有沒有辦法以相反的方式去除它並從EAR的根文件夾中刪除JARs?
連接是EAR POMMaven的:從EAR

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-ear-plugin</artifactId> 
      <version>2.6</version> 
      <configuration> 
       <modules> 
        <webModule> 
         <groupId>com.csv.xyz</groupId> 
         <artifactId>web</artifactId> 
        </webModule> 
       </modules> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 
<dependencies> 
    <dependency> 
     <groupId>com.csv.xyz</groupId> 
     <artifactId>web</artifactId> 
     <version>0.0.1-SNAPSHOT</version> 
     <type>war</type> 
     <scope>compile</scope> 
    </dependency> 
</dependencies> 
+0

這有什麼特別的理由嗎?這是否給你帶來麻煩? – maba

+0

唯一的原因,我想保留WAR獨立實體,並且能夠隨時部署它 – Mira

回答

1

我不認爲這是因爲類加載器架構的一個好主意。如果JAR是WAR的一部分,則它由Web應用程序類加載器定義,這可能會導致多個實例。如果它是EAR的一部分,它由企業應用類加載器定義,這是一個不同的類加載器。

0

要從EAR lib文件夾的依賴,聲明依賴作爲EAR POM提供,例如去除公地郎鹹平:

<dependencies> 
    <dependency> 
     <groupId>commons-lang</groupId> 
     <artifactId>commons-lang</artifactId> 
     <version>2.6</version> 
     <scope>provided</scope> 
    </dependency>  
</dependencies> 

只要確保,如果你有EJB模塊他們不不需要依賴!此外webModules不會貢獻EAR的根lib文件夾,你有更多的依賴在你的耳朵嗎?

+0

我沒有EJB,除了上面POM中指定的Web模塊外,沒有任何其他依賴項! – Mira

+0

mvn依賴關係的輸出是什麼:tree? –