【问题标题】:Clarification On And Resolution Of 'Java EE Module Dependencies'澄清和解决“Java EE 模块依赖性”
【发布时间】:2011-09-11 21:04:24
【问题描述】:

我正在尝试在 utility 项目上设置 web 项目的依赖。我的实用程序项目设置有 'Utility Module' 项目方面和 'Java 5'。当我在我的 web 项目的属性中选择 'Java EE Module Dependencies' 时,我的实用程序项目没有出现。我相信这是问题所在,我很乐意解决它!

我也尝试了以下方法: 但是,由于实用程序项目确实显示在我的 EAR 属性的 'Java EE Module Dependencies' 中,我在我的 EAR 中选择了依赖项,发现实用程序现在可用于我的网络项目,它显示为。例如,Utility.jar。最终,这似乎是想要的效果。但是,问题似乎与服务器的依赖关系解析有关。 Jar 分发到 EAR 并作为 Utility.jar 添加到 Web 的清单中。但是 Utility 项目的依赖项并没有被包括在内(或其他影响)。注意:我的公司使用 Ivy 进行依赖关系解析。这里的问题是,我收到 NoClassDefFoundError 的特定 Jar 也包含在 Web 的依赖项中(即 Jar 存在于 WEB-INF/lib 目录中)。所以我不确定为什么,如果这是一个可行的解决方案,Jar 无法解决来自 Web 类加载器的依赖关系。

另外值得一提的是,Utility 项目已添加到 web 项目的 'Build Path''Project' 选项卡中;因此,我没有收到任何编译错误。

我将继续深入研究并尝试找到解决方案,但我将不胜感激任何帮助或指导。

以下是我发现的一些与我的详尽研究相关的资源:


解决方案发布在下方

感谢任何为我调查此问题的人,感谢您抽出宝贵时间。希望这能帮助以后遇到类似问题的人。

真诚地, 比兹

【问题讨论】:

    标签: eclipse ivy java-ee-5 eclipse-3.4 ivyde


    【解决方案1】:

    Web 项目不能具有实用程序项目依赖项。这仅适用于 EAR 文件,因为这是 WAR 文件中不存在的 EAR 结构。

    Eclipse Java EE 生态系统设计过度。我强烈怀疑这不是 Eclipse 本身从头开始开发的,而是直接取自 IBM 的商业 Eclipse 产品之一。这是否是一个好主意值得讨论。

    【讨论】:

      【解决方案2】:

      之前,我无法在 Web 项目的属性 > 'Java EE Module Dependencies' > 'Web Libraries' 中检查 Utility 项目。我不确定为什么。模块出现了,但是当我检查它时,单击“应用”和“好的”,当我重新打开属性时,模块未被选中。所以我手动将依赖添加到 org.eclipse.wst.common.component 文件中:

      <dependent-module archiveName="Utility.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/Utility/Utility">
          <dependency-type>uses</dependency-type>
      </dependent-module>
      

      这完全解决了问题,我的应用程序可以正常运行!

      【讨论】:

      • 从 Utility 项目改成普通 Java 项目后,“无法检查”是否适用?无论如何,这听起来是一个很好的 bugzilla 报告候选人。
      • 不,实用程序是实用程序模块,而 Web 是 EAR 模块内的动态 Web 模块。你为什么不赞成我的回答?
      • 直接操作eclipse配置文件是一个很脆弱的解决方案。
      • 如果 GUI 允许该解决方案使用的内容,这似乎是达到目的的合乎逻辑的手段。如果在同一个工作区中创建了一个全新的 Utility 项目和 Web 项目,这正是在 GUI 中检查依赖关系时所操作的文件。我同意该对话框中存在错误,但这不会使该解决方案变得脆弱;因为手动解决方案与 GUI 的预期结果相同。
      猜你喜欢
      • 1970-01-01
      • 2017-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-27
      • 1970-01-01
      • 2017-09-09
      • 2022-01-11
      相关资源
      最近更新 更多