Ошибка "Фильтр неудовлетворенного собственного кода" при попытке экспортировать фрагмент OSGi в Eclipse с помощью пользовательского vm arg
Здесь, кажется, есть только еще один вопрос такого рода, но решение, предложенное этим ответом, не было эффективным для меня. Я использую Spring Tool Suite (по сути, Kepler 4.3.2 SR2) в качестве своей IDE для разработки фрагмента OSGi, который содержит последнюю версию некоторого собственного кода C++. Фрагменты существуют, чтобы учесть возможность существования разных версий программного обеспечения в разных средах, с которыми этот собственный код предназначен для интеграции.
Однако я не могу экспортировать этот фрагмент, по-видимому, из-за пользовательского vm arg, который мы используем для представления этого номера версии.
Манифест выглядит примерно так:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Windows 64-bit support for Third-Party XYZ 4.12.7
Bundle-SymbolicName: com.ourcompany.oursoftwarepackage.xyz.win64xyz4127
Bundle-Version: 8.6.2.qualifier
Bundle-Vendor: OurCompany
Fragment-Host: com.ourcompany.oursoftwarepackage.xyz
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Eclipse-PlatformFilter: (& (osgi.os=win32) (osgi.arch=x86_64))
Bundle-NativeCode: xyzintegration.dll; selection-filter = "(oursoftwarepackage.xyzVersion=4.12.7)"
Bundle-ClassPath: .
Ошибка говорит:
Обработка включения из функции org.eclipse.pde.container.feature: Bundle com.ourcompany.oursoftwarepackage.xyz.win64xyz4127_8.6.2.qualifier не удалось разрешить.: Фильтр не удовлетворенного кода: xyzintegration.dll; Выбор фильтра ="(oursoftwarepackage.xyzVersion=4.12.7)".
Если я удалю предложение фильтра выбора, то оно будет экспортировано, но артефакт не будет создан.
Предложение, которое я экстраполировал по ссылке выше, должно было включить vmarg
-Doursoftwarepackage.xyzVersion=4.12.7
в целевой среде разработки плагина. Это, однако, казалось, не удовлетворяет рамки OSGi. Теперь я в растерянности относительно того, как получить фрагмент для разрешения, чтобы можно было продолжить экспорт.
1 ответ
Я полагаю, вы говорите о настройке целевой среды редактора определения цели. По крайней мере, это единственное место, которое я знаю для такой обстановки. Но это определение цели, против которой вы разрабатываете. Он не определяет время выполнения.
Вам необходимо установить параметр VM в конфигурации Run.
Выполнить -> Выполнить настройки... -> Выбрать приложение для запуска -> Перейти на вкладку Аргументы -> вставить значение в раздел аргументов виртуальной машины