Моего Gradle проекта ("osgiapp") имеет зависимость от проекта OSGI ("osgidep"), который имеет следующий Manifest.mf запись:Gradle: Правильно строить из MANIFEST.MF классов OSGi DEPENDENCY в
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 обеспечивается Lib/lib.jar включен в osgidep.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 зависимости?
Правильно. То, что я ищу, - это какой-то автоматизированный способ настройки пути к классу при использовании градиента - подобный вид волшебства Eclipse с PDE. – MichalR
Я не думаю, что PDE обрабатывает Bundle-Classpath. –