Ошибка "Фильтр неудовлетворенного собственного кода" при попытке экспортировать фрагмент 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.

Выполнить -> Выполнить настройки... -> Выбрать приложение для запуска -> Перейти на вкладку Аргументы -> вставить значение в раздел аргументов виртуальной машины

Другие вопросы по тегам