Неудовлетворенная ошибка фильтра собственного кода при попытке экспортировать фрагмент OSGi в Eclipse с пользовательским аргументом vm

Кажется, есть только один вопрос такого рода: «>здесь, но решение, предложенное в этом ответе, не сработало для меня. Я использую Spring Tool Suite (по сути, Kepler 4.3.2 SR2) в качестве своей IDE для разработки фрагмента OSGi, который содержит последнюю версию некоторого собственного кода C++. Фрагменты существуют, чтобы учесть возможность существования разных версий программного обеспечения в разных средах, с которыми этот собственный код предназначен для интеграции.

Однако я не могу экспортировать этот фрагмент, по-видимому, из-за пользовательского аргумента vm, который мы используем для представления этого номера версии.

Манифест выглядит примерно так:

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: Не удалось разрешить пакет com.ourcompany.oursoftwarepackage.xyz.win64xyz4127_8.6.2.qualifier.: Неудовлетворенный фильтр собственного кода: xyzintegration.dll; selection-filter="(oursoftwarepackage.xyzVersion=4.12.7)".

Если я удалю предложение фильтра выбора, то он будет экспортироваться, но фактического артефакта не будет.

Предложение, которое я экстраполировал из приведенной выше ссылки, заключалось в том, чтобы включить vmarg

-Doursoftwarepackage.xyzVersion=4.12.7 

в целевой среде разработки плагинов. Это, однако, не удовлетворило структуру OSGi. Теперь я не понимаю, как разрешить фрагмент, чтобы можно было продолжить экспорт.


person Meadowlark Bradsher    schedule 29.10.2015    source источник
comment
Вы говорите, что добавили vmarg в целевую среду PDE. Что это значит? Вы используете этот vmarg при запуске приложения?   -  person Dirk Fauth    schedule 10.11.2015
comment
В целевой среде есть настройка для vmargs. Я добавил туда пользовательский аргумент.   -  person Meadowlark Bradsher    schedule 20.11.2015


Ответы (1)


Я полагаю, вы говорите о настройке целевой среды редактора определения цели. По крайней мере, это единственное известное мне место с такой обстановкой. Но это определение цели, против которой вы развиваетесь. Он не указывает время выполнения.

Вам необходимо установить параметр VM в конфигурации запуска.

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

person Dirk Fauth    schedule 20.11.2015