2013-04-19 3 views
0

Я собираюсь разработать систему, которая генерирует приложения gwt. В этих приложениях много виджетов, и время компиляции очень важно для меня. Мне интересно, могу ли я подготовить набор виджетов, обернуть их в модуль без точки входа, скомпилировать их только один раз и повторно использовать скомпилированный код в проекте других, в котором наследуются другие модули.Могу ли я использовать предварительно скомпилированный модуль, например, библиотеку виджетов?

  • ModuleA (только общие виджетов)
  • Модуль1 (остальная часть App1, наследует от ModuleA).
  • Module2 (остальная часть app2, наследуется от ModuleA).

Могу ли я скомпилировать Module2 без перекомпиляции ModuleA каждый раз при создании нового приложения?

Я также использовал superDevMode и все компиляции оптимизаций, , но это становится принципиальным вопросом :)

Я не забочусь о GWT оптимизаций.

Благодаря

+1

Насколько я знаю, вы не можете этого сделать. Каждый раз, когда вы компилируете, вы должны скомпилировать весь проект (включая ваши общие виджеты). GWT заставляет вас делать это, потому что в противном случае он не сможет выполнить все оптимизации, которые GWT так хорошо делает. – enrybo

ответ

1

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

И даже используя jsni, вы не можете передавать объекты между модулями, кроме primitive и Overlay.

Лучшее решение, которое я вижу, это то, что вы можете экспортировать виджеты с ModuleA в javascript, используя gwt-exporter, это tutorial Я написал некоторое время назад, может вам помочь.

Но после экспорта модуля ModuleA в качестве javascript API, вы должны обернуть этот api с помощью jsni в GWT, чтобы вызвать его из ModuleB и ModuleC.

IMHO, Не стоит того времени, когда вы могли бы сэкономить в компиляции вашего модуля, когда вы исключите свой модуль.

Думайте, что при экспорте ModuleA вам нужно скомпилировать все, хотя оно не используется в ModuleB. Ваш код в модуле ModuleB будет бесполезным, если вам нужно обмениваться информацией с ModuleA с использованием примитивных и наложенных типов. Много других вопросов.

+0

Считаете ли вы, что gwt-exporter может быть хорошим решением, позволяющим моим клиентам расширять приложение gwt, которое я создал? – TeamBanana

+0

уверен !, он предназначен для этого –

Смежные вопросы