2012-12-19 73 views
8

在我的應用程序中,我將一些罐子設置爲項目依賴關係。這個罐子被添加爲用戶庫。當我在JBoss AS7中運行應用程序時,我使用的是由JBoss服務器提供的JSF實現,我從模塊中複製了這些JSF jar,並創建了一個新的用戶庫,即JBoss JSF。該庫已用於在Eclipse中創建JSF 2 Dynamic Web Project。現在,當我將它作爲WAR文件導出時,這些jsf jar會自動被複制並添加到戰爭的/WEB-INF/lib中。我不希望這些文件被添加,因爲它們已經存在於容器中。如何排除添加在WAR文件中的罐子

有沒有辦法做到這一點?

欲瞭解更多信息,這是.classpath文件的內容:

<?xml version="1.0" encoding="UTF-8"?> 
<classpath> 
    <classpathentry kind="src" path="src/common"/> 
    <classpathentry kind="src" path="src/service"/> 
    <classpathentry kind="src" path="src/web"/> 
    <classpathentry kind="src" path="src/persistent"/> 
    <classpathentry kind="src" path="src/dao"/> 
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jre7"> 
     <attributes> 
      <attribute name="owner.project.facets" value="java"/> 
     </attributes> 
    </classpathentry> 
    <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/> 
    <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/> 
    <classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/JBoss JSF"> 
     <attributes> 
      <attribute name="owner.project.facets" value="jst.jsf"/> 
     </attributes> 
    </classpathentry> 
    <classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/JBoss Servlet"/> 
    <classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/JBoss log4j"/> 
    <classpathentry kind="output" path="build/classes"/> 
</classpath> 

我的應用程序的部署大會: enter image description here

+0

@Rahul我以前見過這個鏈接,那裏的解決方案提供了一種從源選項卡中排除文件的方法。 –

+1

只是使用ant或maven。 – BigMike

+0

+1對螞蟻的建議(即使問題是「基於日食的」) – acostache

回答

2

嘗試,你需要從戰爭的文件中排除,然後單擊刪除此

  1. 打開項目屬性
  2. 選擇部署大會
  3. 選擇庫。您選擇 罐將從戰爭被刪除的文件

還是儘量多一個屬性添加到.classpath文件

<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/JBoss JSF"> 

    <attributes> 

    <attribute name="owner.project.facets" value="jst.jsf"/> 

    <attribute name="org.eclipse.jst.component.nondependency" value=""/> 

    </attributes> 

+0

請讓我知道它的工作。 – Rahul

+0

Rahul我添加了部署程序集的圖像。沒有罐子。 –

+0

能不能請你多了一個屬性添加到.classpath文件 <屬性名=「老闆.project.facets」值= 「jst.jsf」/> <屬性名= 「org.eclipse.jst.component.nondependency」 值= 「」/> Rahul

0
  1. 打開Project Properties對話框。
  2. 從左側面板中選擇Java Build Path。
  3. 選擇來源選項卡。
  4. 列出項目中包含的所有罐子的列表。
  5. 選擇JAR文件並單擊編輯按鈕。
  6. 在包含或排除的模式窗口中,選擇排除(如果這是你想要的)並添加一個模式。選擇確定。
  7. 在罐子的每一行中,在右側會相應地看到一個加號或減號。
+0

謝謝,但我很抱歉,在Source選項卡中只有所有源文件的列表。沒有這樣的罐子清單。罐子文件在庫中列出。 –

+0

嘗試在訂單和導出選項卡中取消選擇不需要的庫。 – 2012-12-19 10:31:31

+0

我試過這個選項。圖書館在那裏,但他們沒有被檢查。 –

0

可以設置依賴的範圍提供。表明您期望JDK或容器在運行時提供依賴關係。例如,在爲Java Enterprise Edition構建Web應用程序時,您可以將Servlet API和相關Java EE API的依賴性設置爲範圍,因爲Web容器提供了這些類。此範圍僅在編譯和測試類路徑中可用,且不是傳遞性的。這個範圍的依賴不會包含在戰爭/耳朵中。

<dependency> 
     <groupId>javax.mail</groupId> 
     <artifactId>mail</artifactId> 
     <version>1.4</version> 
     <scope>provided</scope> 
    </dependency>