【发布时间】:2015-06-05 22:58:20
【问题描述】:
我的 gradle 项目(“osgiapp”)依赖于一个 OSGI 项目(“osgidep”),该项目具有以下 MANIFEST.MF 条目:
Manifest-Version: 1.0
Export-Package: test.lib,test.osgidep
Bundle-ClassPath: lib/lib.jar,.
Bundle-Name: osgidep
Bundle-Version: 1.0
Bundle-SymbolicName: osgidep
这里导出了两个包:
- test.lib 包由osgidep.jar 中包含的lib/lib.jar 提供
- test.osgidep 包由 osgidep.jar 自己提供
现在,我的 build.gradle 看起来像这样:
apply plugin: 'java'
apply plugin: 'osgi'
repositories {
flatDir {
dirs "../osgidep"
}
}
dependencies {
compile ":osgidep:"
}
当我尝试构建同时使用两个导出包的代码时:
package test.osgi;
import test.lib.Lib;
import test.osgidep.OsgiDep;
public class Test
{
Lib lib = new Lib();
OsgiDep dep = new OsgiDep();
}
我收到一个编译错误,提示 test.lib 包不存在。
如何告诉 gradle 根据依赖项的 MANIFEST.MF 条目生成正确的类路径?
【问题讨论】: