2011-05-10 26 views
1

我已經放置在/src/main/webapp/WEB-INF/lib/排除所有的罐子從web應用/ WEB-INF/lib下的

第三方JAR的在我的web項目中,我已經在pom.xml中提到的相關性爲所有需要 JAR的。 現在,由於依賴關係是在POM中定義的,因此JAR將自動打包在lib文件夾中。

  • 我想排除lib中的所有JAR。
  • 的依賴JAR的應該打包的lib內同時建設的WAR

我不能刪除的LIB從WEB-INF,因爲它的二手地方發展

這是我已經試過到目前爲止:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-war-plugin</artifactId> 
    <configuration> 
    <packagingExcludes>META-INF/context.xml</packagingExcludes> 
    <webResources> 
     <resource> 
     <directory>src/main/webapp/WEB-INF/lib</directory> 
     <excludes> 
      <exclude>**/**</exclude> 
     </excludes> 
     </resource> 
    </webResources> 
    </configuration> 
</plugin> 

任何想法?

+1

沒有理由hav e這個用於本地開發的'lib'目錄Maven在本地緩存所有內容,Eclipse,Idea和Netbeans都知道如何從那裏獲取依賴關係。如果你正在開發一個Tomcat的'webapps'目錄,那麼這是一個糟糕的做法。 Maven可以無縫地構建和部署一個'war'文件到所有流行的J2EE容器。 – 2011-08-31 16:02:40

回答

2

試試這個:

<configuration> 
    <warSourceExcludes>WEB-INF/lib/*.jar</warSourceExcludes> 
    .... 
</configuration> 

不過,我確實與賈羅德同意,這是不好的做法,「手動」存儲你的罐子在WEB-INF/lib。我之前使用過這個功能,以避免隨後打包的jar文件能夠重新打包。

+0

不起作用:( – Arpit 2011-06-01 10:20:04

+0

您可以嘗試省略一些其他配置詳細信息嗎?僅用於測試?也許存在某種衝突,如果您單獨使用該設置,則確實有效。 – wjans 2011-06-01 10:51:58

1

你應該沒有任何東西在你的WEB-INF/lib目錄開始。如果您使用的是Eclipse,您可以告訴它從pom.xml開始構建它的項目,並且它會知道在~/.m2/repository中查找依賴關係,Intellij IDEA也會這樣做。將依賴關係置於WEB-INF/lib中會違背使用Maven進行依賴管理的目的。當pom.xml依賴於走出同步版本明智的那些,會發生什麼WEB-INF/lib

+0

是的,我知道'WEB-INF/lib'中有任何東西是不對的,但是我在這裏構建了一個遺留項目,並且很難從這個位置刪除這些庫(本地開發將受到影響) – Arpit 2011-06-01 10:19:41

+3

第一步處理遺留的構建系統是**支付技術債務**並修復它只需一步即可完成,您將立即受益,並且每個追隨您的人也將從中受益,從而爲公司節省資金和時間。 – 2011-06-01 19:12:02