如何排除在WAR文件中添加Jars

时间:2012-12-19 10:14:47

标签: java eclipse jar war

在我的应用程序中,我将一些jar设置为项目依赖项。此罐子作为用户库添加。当我在JBoss AS7中运行应用程序并且我使用JBoss服务器提供的JSF实现时,我从模块中复制了那些JSF jar并创建了一个新的用户库,即JBoss JSF。该库已用于在Eclipse中创建JSF 2 Dynamic Web Project。现在,当我将其作为WAR文件导出时,这些jsf jar会被自动复制并添加到战争的/WEB-INF/lib中。我不希望这些文件被添加,因为它们已经存在于容器中。

有什么办法吗?

有关更多信息,这是.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

3 个答案:

答案 0 :(得分:2)

试试这个

  1. 打开项目属性
  2. 选择部署程序集
  3. 选择需要从war文件中排除的库,然后单击“删除”。 您选择的罐子将从战争文件中删除
  4. 或尝试将另外一个属性添加到.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>
    

答案 1 :(得分:0)

  1. 打开“项目属性”对话框。
  2. 从左侧面板中选择Java Build Path。
  3. 选择“来源”标签。
  4. 将列出项目中包含的所有JAR的列表。
  5. 选择JAR文件,然后单击“编辑”按钮。
  6. 在包含或排除的模式窗口中,选择排除(如果这是您想要的)并添加模式。选择确定。
  7. 在罐子的每一行,在右手边,你会看到一个加号或减号。

答案 2 :(得分: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>