gpt4 book ai didi

java - 解决 Virgo 与 jar 包的依赖关系

转载 作者:行者123 更新时间:2023-12-01 15:48:42 26 4
gpt4 key购买 nike

我正在尝试将许多 jar 包装为 bundle ,我希望其他 bundle 能够依赖这些 bundle 。使用 Spring dm Server,这曾经非常简单,只需将 jar 文件添加到新的捆绑项目中,导出所有类,并确保 jar 文件位于构建路径和类路径上。

这是一个简单、规范的示例,说明了我正在尝试做的事情(以及我失败的地方):

以 Joda Time 为例,我希望将其打包在一起,以便可以将其作为依赖项进行共享。首先,我创建一个包来存放 jar:

  1. 创建新的 bundle 项目 Eclipse (Indigo Java EE)
  2. 在项目根目录中创建文件夹“lib”
  3. 将 joda-time-1.6.1.jar 添加到“lib”文件夹
  4. 将 lib/joda-time-1.6.1.jar 添加到构建路径
  5. 更新 src/META-INF/MANIFEST.MF 以导出所有类:

    Manifest-Version: 1.0Bundle-Version: 1.0.0Bundle-Name: joda-timeBundle-ManifestVersion: 2Bundle-SymbolicName: org.joda.timeBundle-ClassPath: lib/joda-time-1.6.1.jar, .Export-Package: org.joda.time, org.joda.time.base, org.joda.time.chrono, org.joda.time.convert, org.joda.time.field, org.joda.time.format, org.joda.time.tz

Now, we want to use this in some new bundle we've created:

  1. Create a new bundle project in Eclipse (Indigo Java EE) "MyDepTest"
  2. Edit src/META-INF/MANIFEST.MF to import org.joda.time:

    Manifest-Version: 1.0Bundle-Version: 1.0.0Bundle-Name: MyDepTestBundle-ManifestVersion: 2Bundle-SymbolicName: com.foo.deptestImport-Package: org.joda.timeImport-Bundle: org.joda.time;version="[1.0.0,1.0.0]"
  3. Add the org.joda.time bundle to the project references so Eclipse can resolve the depenencies

  4. Write the class:

    package com.foo.deptest;
    import org.joda.time.DateTime;
    public class SimpleDepTest {
    public SimpleDepTest (){
    DateTime dt = new DateTime();
    }
    }

现在,org.joda.time.DateTime 应该可以解决,但 Eclipse 在 org.joda 上用红色下划线指示以下错误

The import org.joda cannot be resolved

我哪里出错了?如何将 jar 包装为 bundle ,以便我可以使用其他 bundle 中的类?

最佳答案

事实证明,将 jar 添加到类路径是不够的,我们还需要确保它是构建路径的一部分。这是在构建配置对话框中完成的:

  1. 右键单击项目导出依赖项
  2. 选择“属性”
  3. 选择“Java 构建路径”
  4. 转到“订购和导出”标签
  5. 确保选中 jar 旁边的复选框(这可确保 jar 本身最终位于构建路径上)

关于java - 解决 Virgo 与 jar 包的依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6574309/

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