gpt4 book ai didi

Eclipse 以及它如何处理 JARS —— 奇怪的案例

转载 作者:行者123 更新时间:2023-12-04 06:44:16 25 4
gpt4 key购买 nike

尝试对 Apache 的 Velocity 引擎做一些小的改动。

这是我能做和不能做的。

我正在对合并函数()进行更改。我所做的改变并不重要,因为我还没有做到。 ;) 现在我正在接受 println 语句的触发。

我有两个对 merge() 的引用。如果我将函数更改为mergeBAD() Eclipse 告诉我它找不到merge()。有道理吗?我曾经在我的类构建路径中包含下载速度时获得的两个 jar,但我使用提供的 src 文件创建了一个项目,并将该项目用作依赖项。同样,当我将它重命名为 mergeBAD 时找不到 merge() 的事实给了我希望。

但是当我运行我的网络服务器时,打断点并进入合并调用,它找不到源!我再次将它指向项目,它“找到”了源,我所做的任何更改(特别是 println 语句)都没有受到影响。他们只是被跳过。 :(

在上帝的绿色地球上可能是什么导致了这种情况?它快把我逼疯了。我今天花了一整天的时间试图找出问题所在。如果无法更改 Velocity,我将无法继续。 eclipse 运行速度文件的代码库到底是什么?

非常感谢提前! :)

最佳答案

这是构建类路径和运行时类路径之间混淆的典型案例。

您的构建类路径包含对 Java 项目的引用(包含对 Velocity 的更改)......但我敢打赌,您的运行时类路径包含对原始 Velocity JAR 文件的引用。

在 Eclipse 下的 Web 项目(WTP - Web 工具项目)中管理构建类路径和运行时类路径在最近几个 WTP 版本中经历了巨大的变化。我们可以指导您完成。如果您将 Velocity 的 JAR 文件物理添加到您的 WEB-INF/lib ,让我们从删除它们开始。

好的,在你删除 Velocity.jar 之后来自 WEB-INF/lib 的文件, 请执行下列操作:

  • 右键单击项目,选择“属性”。
  • 转到“Java 构建路径”。选择“项目”选项卡并确保您的自定义 Velocity 项目(我们称之为“MyVelocity”)不存在。
  • 仍然在“Java 构建路径”中,选择“库”选项卡并确保那里也没有 Velocity JAR。

  • 通过执行上述步骤,我们清除了对 MyVelocity(您的项目)或任何其他 Velocity JAR 的任何引用的 Web 应用程序。

    有趣的来了。我将指导您如何正确地将 Java 项目作为依赖项“添加”到 Web 项目中。
  • 仍在项目的属性中,转到 Deployment Assembly .
  • 点击“添加”。
  • 选择“项目”,然后选择“下一步”。
  • 选择“MyVelocity”并确保选中“Web Library Reference”复选框。
  • 单击“完成”。

  • 回到 Deployment Assembly对话框,您现在应该看到 MyVelocity映射到 WEB-INF/lib/MyVelocity.jar .

    单击确定。

    我们所做的是将 MyVelocity 映射为 WEB-INF/lib依赖。通过这样做, MyVelocity也会自动添加到编译时构建路径中 - 因此您不要自己将其添加到构建路径中,这会导致重复的构建路径条目,这一点非常重要。

    现在一切都应该为你工作。如果您有任何问题,请告诉我。

    附言如果您正在开发独立的 WAR 项目,这些说明是正确的;如果您的 WAR 文件是 EAR 的一部分,您可能希望(在某些情况下,例如,如果 MyVelocity 被 EAR 中的其他 J2EE 模块使用)映射 MyVelocity不同地,到一个共同的位置;如果是这种情况,请告诉我,我会进一步详细说明。

    关于Eclipse 以及它如何处理 JARS —— 奇怪的案例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3886530/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com