Как я могу создать плагин Eclipse за пределами Eclipse?

Я бы сделал это со свойством только для чтения и методом, который заполняет свойство.

Если вы знаете, что результат понадобится, вы можете загрузить его в начале - во время запуска службы, активации просмотра и т. Д.

Я в основном использую ReactiveUI в приложениях WPF, поэтому это будет выглядеть так:

// ViewModel constructor
GetResult = ReactiveCommand.CreateFromTask(async () => _model.GetResultAsync()); // notice that method is async
// there is also overload with CancelationToken

_result = GetResult.Retry(3).ToProperty(this, x => x.Result); // we can retry few times and we get change notification

GetResult.Subscribe(result =>{
 // do something as soon as the result is loaded
});   

GetResult.ThrownExceptions.Subscribe( errorHandler);

// ViewModel properties
private ObservableAsProperetyHelper _result;

public ResultType Result => _result.Value;

// view constructor

this.WhenActivated(d =>{ // d is CompositeDisposable for cleanup
  ViewModel.GetResult.Execute().Subscribe().DisposeWith(d); // cancel command if the view is deactivated before it's finished
});

Таким образом, вы можете сделать асинхронный вызов в нужный момент и сохранить результат на потом. Вы также можете легко обновить результат - он становится грязным, если использовать только ленивые свойства.

С другой стороны, вы можете легко создать спиннер для загрузки:

_isBusy = GetResult.IsExecuting.ToProperty(this, x => x.IsBusy);

Я следовал этому шаблону в постоянно включенной службе Windows, в которой пользовательский HTTP-сервер работал в фоновом режиме. Вы можете await GetResult.Execute(), если вы хотите навязать загрузку в определенный момент.

В моей практике этот паттерн демонстрирует очень мало недостатков - главный из них - шаблонный код, но при наличии надлежащих инструментов он может быть написан очень быстро.

Если вы создаете какое-либо приложение типа службы, консоль или что-то еще, шаблон MVVM по-прежнему очень полезен, вы просто не делаете представления.

10
задан Adrian 20 November 2008 в 15:58
поделиться

4 ответа

Существует несколько опций для Вас посмотреть на, в зависимости от которого языка сценариев сборки Вы используете:

В моих текущих клиентах мы используем Buckminster, который переносит PDE-сборку, и назовите его от Ant/CruiseControl. У нас есть код, входящий из нескольких репозиториев все встраиваемые в единственный продукт RCP.

Кроме того, они вопросы может помочь.

7
ответ дан 3 December 2019 в 23:52
поделиться

Стандартный способ сделать Сборку Eclipse состоит в том, чтобы использовать Плагин Сборки PDE.

http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.pde.doc.user/guide/tasks/pde_feature_build.htm

http://wiki.eclipse.org/index.php/PDEBuild

Плагин PDU обычно включается с Eclipse IDE и содержит серию шаблонов. Шаблоны помогают Вам настроить систему, которая будет:

  • выборка: Контроль все плагины и функции с помощью файла карты, который содержит местоположения плагинов
  • генерируйте: Создает процесс сборки для каждого проверенного плагина
  • процесс: Компилирует плагины
  • соберитесь: Банки и пакеты плагины
  • постсборка: Позволяет настраивать автоматические тесты и развертывание

Теоретически все, что необходимо сделать, должно изменить файл customTargets.xml, записать файл карты, который содержит ссылку на каждый плагин, который необходимо проверить и изменить build.properties файл для указания на такие свойства как cvs местоположение сервера.

У меня была подобная проблема к той, которую Вы имеете. Механизм сборки разделен на несколько шагов. Можно настроить цель упреждающей выборки файла customTargets.xml, таким образом, некоторые "объемные" библиотеки импортируются из определенных деревьев в репозитории и добавляют их к каталогу сборки, таким образом, Вы не должны указывать каждый плагин в карте.

4
ответ дан 3 December 2019 в 23:52
поделиться

Можно использовать Tycho для создания плагинов затмения со Знатоком. Это - то, как плагин M2eclipse создается. Узнайте больше по http://m2eclipse.sonatype.org

1
ответ дан 3 December 2019 в 23:52
поделиться

Вы могли записать своего рода сценарий, который находит те библиотеки для Вас и помещает их в формат, понятный Муравьем.

Например, это могло создать eclipse.lirbaries.properties файл, затем Вы могли читать в том использовании файла:

<property file="eclipse.libraries.properties" />

Вы могли также использовать атрибут FileSet:

http://ant.apache.org/manual/Types/fileset.html

Или даже комбинация обоих.

1) Назовите скрипт Ant
2) Скрипт Ant называет удар (или безотносительно языка сценариев) сценарием, который создает eclipse.libraries.properties
3) Муравей загружает eclipse.libraries.properties
4) Муравей продолжает сборку

1
ответ дан 3 December 2019 в 23:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: