【问题标题】:Dynamic WebProject import another project and dependencies动态 Web 项目导入另一个项目和依赖项
【发布时间】:2015-06-19 22:45:21
【问题描述】:

我有一个动态 Web 项目,我们将其称为“项目 A”和另一个常规 Java 项目,我们将在 Eclipse 中将其称为“项目 B”。我已通过进入项目属性将项目 b 添加到项目 A 中 Properties -> Deployment Assembly -> Add -> Project。 这可以工作并将 jar“项目 B.jar”添加到项目 A/WEB-INF/lib 文件夹中。但是,在“项目 B”上配置的外部 jar 文件不包含在“项目 B.jar”中。另外我去了 project b -> Properties -> Java Build Path -> Order and Export 我已经检查了“项目 B”的所有必需依赖项,但它仍然没有将它们包含在 jar 中。如何让 Eclipse 将这些 jar 包含在“项目 B.jar”文件中。

如果您需要知道我正在使用 eclipse Indigo 而我们没有在这个项目中使用 mavin,那么我们只需要这个 jar。提前致谢。

【问题讨论】:

    标签: java eclipse jar eclipse-indigo


    【解决方案1】:

    您应该将项目 B 转换为分面形式(转到项目属性,“项目分面”->“转换为分面形式...”)。唯一需要的方面是“Java”和“实用程序模块”。如果我没记错的话,那时 Eclipse 会警告您在项目 A 的运行时可能会丢失这些额外的 JAR 依赖项,从而为您提供快速修复选项以将它们添加为依赖项。这将为每个引用的 JAR 文件在项目 B 的 .classpath 文件中添加一个 attributes 元素,例如:

    <classpathentry exported="true" kind="lib" path="lib/commons-beanutils-1.9.2.jar">
       <attributes>
          <attribute name="org.eclipse.jst.component.dependency" value="../"/>
       </attributes>
    </classpathentry>
    

    不必包含的 JAR 将获得此属性:

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

    如果您没有收到上述警告,您也许可以直接添加 attributes 元素。注意:这是 Eclipse Luna 的全部内容,但我知道至少在 Kepler 中它已经像这样工作了。

    【讨论】:

    • 感谢@Hein 的回复。 “项目 B”是一个分面项目,它选择了实用模块。但是我的 .classpath 文件看起来不像提供的那样。我的都看起来像&lt;classpathentry exported="true" kind="lib" path="C:/.../commons-codec-1.5.jar"/&gt; 并且没有属性字段。如果我手动添加它们,value="../"/&gt; 值应该是什么?
    • 你应该可以就这样离开它,即value="../"。至少这对我的动态 Web 项目有用。我发现这两个线程让我感到困惑,因为我似乎应该使用value="/WEB-INF/lib",因为我还有一个独立的网络项目:eclipse.org/forums/index.php/t/172866wiki.eclipse.org/ClasspathEntriesPublishExportSupport。但是 "../" 条目是 Eclipse 为我创建的并且有效。
    • 再次感谢@Hein 在项目 B 上编辑我的类路径并添加有效的条目。
    • 很高兴我能帮上忙。 :)
    • 顺便说一句,我无法让 Eclipse 自动识别实用程序项目(在您的示例中为项目 B)中的更改,因此如果项目 A 部署在应用程序服务器上(在我的情况下为 GlassFish) , Eclipse 将其标记为“重新发布”并允许您这样做。我的解决方法是在项目 A 上运行“清理”,它总是触发“重新发布”,同时从项目 B 中提取任何潜在的更改。从来没有发现这是一个错误还是我的设置被破坏了。
    猜你喜欢
    • 1970-01-01
    • 2019-09-09
    • 2021-09-30
    • 1970-01-01
    • 1970-01-01
    • 2010-12-14
    • 2020-07-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多