Замена существующего идентификатора функции в Eclipse

StackOverflow https://stackoverflow.com/questions/1067347

  •  21-08-2019
  •  | 
  •  

Вопрос

У меня есть функция, и я хочу изменить ее идентификатор.Однако это делает невозможным обновление существующей установки, и вот почему:

  1. Предположим, что функция F1 версии 1.0 состоит из плагина A версии 1.0.
  2. Теперь я хочу иметь функцию F2 в версии 1.1, которая использует плагин A в версии 1.1.
  3. При установке F2 я получаю сообщение об ошибке: у меня уже есть функция F1, для которой требуется плагин A версии 1.0, и, таким образом, установка плагина A 1.1 аннулирует эту зависимость.

Я ищу способ обозначить, что F2 заменяет F1.Как мне это сделать?

Это было полезно?

Решение

Я предполагаю, что вы используете p2.

Когда вы экспортируете/создаете свою функцию с помощью p2 метаданные , результирующий файл content.xml (.jar) содержит что-то вроде следующего:

<unit id='f.feature.group' version='1.0.0' singleton='false'>
  <update id='f.feature.group' range='[0.0.0,1.0.0)' severity='0'/>
  ...
</unit>

Этот <update> Элемент указывает предыдущие версии функции, которые будут обновлены в этой версии.Существующий инструмент создания метаданных устанавливает это, как вы видите выше.

Я создал функцию «f», которая включает в себя плагин «A 1.0.0», экспортировал ее с метаданными и установил эту функцию в свое затмение.Затем я создал функцию «g», которая включает в себя плагин «A 2.0.0».Я экспортировал это снова в тот же репозиторий.Затем я вручную отредактировал файл content.xml и изменил:

<unit id='g.feature.group' version='1.0.0.200907061120' singleton='false'>
  <update id='g.feature.group' range='[0.0.0,1.0.0.200907061120)' severity='0'/>

к

<unit id='g.feature.group' version='1.0.0.200907061120' singleton='false'>
  <update id='f.feature.group' range='[0.0.0,1.0.0.200907061120)' severity='0'/>

Затем в своем затмении я выполнил «Проверку обновлений», и он нашел «g» как обновление предыдущего «f» и выполнил обновление.(Возможно, вам придется принудительно перезагрузить репозиторий, чтобы принять изменения; для этого необходимо выполнить «тестовое соединение» на странице настроек «Доступные сайты программного обеспечения»).

К сожалению, в настоящее время нет способа заставить процесс экспорта/сборки изменить элемент обновления за вас, и это необходимо будет отредактировать вручную.Я поднял эта ошибка.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top