8

在我的应用程序中,我将一些 jar 设置为项目依赖项。这个 jars 被添加为用户库。当我在 JBoss AS7 中运行应用程序并使用 JBoss 服务器提供的 JSF 实现时,我已经从模块中复制了这些 JSF jar 并创建了一个新的用户库,即 JBoss JSF。该库已用于在 Eclipse 中创建 JSF 2 动态 Web 项目。现在,当我将其导出为 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>

我的应用程序的部署程序集: 在此处输入图像描述

4

3 回答 3

2

尝试这个

  1. 打开项目属性
  2. 选择部署程序集
  3. 选择需要从 war 文件中排除的库,然后单击 Remove 。您选择的罐子将从 War 文件中删除

或尝试在 .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>

于 2012-12-19T10:44:09.213 回答
0

您可以将依赖项的范围设置为提供。表示您希望 JDK 或容器在运行时提供依赖项。例如,在为 Java 企业版构建 Web 应用程序时,您可以将 Servlet API 和相关 Java EE API 的依赖设置为提供的范围,因为 Web 容器提供了这些类。此范围仅在编译和测试类路径上可用,并且不可传递。具有此范围的依赖项不会包含在 wars/ears 中。

 <dependency>
        <groupId>javax.mail</groupId>
        <artifactId>mail</artifactId>
        <version>1.4</version>
        <scope>provided</scope>
    </dependency>
于 2014-05-04T07:35:19.573 回答
0
  1. 打开项目属性对话框。
  2. 从左侧面板中选择 Java Build Path。
  3. 选择源选项卡。
  4. 将列出项目中包含的所有 Jar 的列表。
  5. 选择 JAR 文件并单击编辑按钮。
  6. 在包含或排除模式窗口中,选择排除(如果这是您想要的)并添加模式。选择确定。
  7. 在罐子的每一行中,在右侧,您会相应地看到一个加号或减号。
于 2012-12-19T10:22:45.827 回答