我正在尝试将一些罐子包装成我希望其他捆绑包能够依赖的捆绑包。使用 Spring dm Server,这曾经很简单,只需将 jar 文件添加到新的捆绑项目中,导出所有类,并确保 jar 文件位于构建和类路径上。
这是我正在尝试做的事情(以及我失败的地方)的一个简单、规范的示例:
以 Joda Time 为例,我想把它打包成一个包,这样我就可以将它作为依赖项共享。首先,我创建了一个包来保存 jar:
- 创建一个新的捆绑项目 Eclipse (Indigo Java EE)
- 在项目根目录中创建一个文件夹“lib”
- 将 joda-time-1.6.1.jar 添加到“lib”文件夹
- 将 lib/joda-time-1.6.1.jar 添加到构建路径
更新 src/META-INF/MANIFEST.MF 以导出所有类:
清单版本:1.0 捆绑版本:1.0.0 捆绑包名称:joda-time 捆绑清单版本:2 捆绑符号名称:org.joda.time 捆绑类路径:lib/joda-time-1.6.1.jar, . 导出包: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
现在,我们想在我们创建的一些新包中使用它:
- 在 Eclipse (Indigo Java EE) "MyDepTest" 中创建一个新的捆绑项目
编辑 src/META-INF/MANIFEST.MF 以导入 org.joda.time:
清单版本:1.0 捆绑版本:1.0.0 捆绑包名称:MyDepTest 捆绑清单版本:2 捆绑符号名称:com.foo.deptest 导入包:org.joda.time 导入包:org.joda.time;version="[1.0.0,1.0.0]"
将 org.joda.time 包添加到项目引用中,以便 Eclipse 可以解决依赖关系
编写类:
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
导入 org.joda 无法解析
我哪里出错了?如何将 jar 包装为捆绑包,以便可以使用其他捆绑包中的类?