2010-10-11 3 views
1

Я использую Ant задачу, чтобы вызвать GWT компилятор Google, как в:Явное управления Ant пропущенных задач для ускорения компиляции GWT

<java failonerror="true" fork="true" classname="com.google.gwt.dev.Compiler"> 
<arg value="package.of.GWTClass" /> 
</java> 

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

ответ

0

Вы можете добавить пункт if к цели вашего муравья. Мы используем его следующим образом:

При вызове цели вы можете включить компиляцию, установив gwt свойство с -D:

ant -Dgwt=yes gwt-compile 

Противоположностью if в мишени unless.

Надеюсь, что это поможет.

1

Вы также можете рассмотреть возможность параллелизации этапа компиляции GWT в вашей сборке ANT с помощью компиляции java. Мы использовали тег ANT для запуска этапа компиляции GWT наряду со стандартным этапом компиляции java. Очевидно, что это действительно поможет, если на вашем компьютере имеется более одного ядра.

например.

<parallel> 
    <antcall target="gwt-compile"/> 
    <sequential> 
     <antcall target="compile/java"/> 
    </sequential> 
    <parallel> 
     <antcall target="compile/test-unit"/> 
     <antcall target="compile/test-integration"/> 
     <antcall target="compile/test-gwt"/> 
     <antcall target="compile/test-selenium"/> 
    </parallel> 
</parallel> 

Мы также определили модуль файлы, целенаправленные только браузер Firefox для запуска тестов части сборки (для нашей проверки в Buid), а затем и более полный файл модуль со всеми браузерами поддерживаются для полной сборки на сборке непрерывной интеграции.

0

использовать uptodate task в сочетании с gwt. Что он делает, это проверить, является ли файл более поздним, чем другой файл, и устанавливает свойство, если оно есть. Вы сравниваете исходный файл gwt с датами выходных файлов * .js, и если его более свежий, вы делаете компиляцию.

вам нужно будет получить все файлы, которые будет использовать компилятор gwt, который может быть затруднен, если у вас есть только имя модуля, и не может легко выработать дерево наследования, но простой, но не всегда оптимальный подход был бы просто используйте каждый gwt java-файл. Затем в задаче компиляции gwt проверьте свойство перед компиляцией.

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