Могу ли я передать аргументы (свойства отложенного связывания) компилятору GWT?
С помощью компилятора GWT можно ли задавать передачу свойств в качестве аргументов компилятору GWT? Я знаю, что вы можете передавать определенные параметры, такие как -war и -style, но это для передачи значений свойств, таких как "user.agents" или "locale".
Из того, что я вижу в документации, свойства могут быть установлены только из дескриптора модуля. Но я хочу иметь возможность управлять этими свойствами извне, из моего скрипта сборки.
Я попытался найти документацию о том, какие аргументы поддерживаются com.google.gwt.dev.Compile, но нет справочной документации для этого класса. Документы длинные, как инструкции, и неприятные короткие детали.
3 ответа
Ответ - нет!
Я задал тот же вопрос в группе новостей коммитеров, и в настоящее время ничего не доступно.
Они думают о добавлении поддержки предоставления дополнительного файла.gwt.xml для внешней переопределения / настройки. Это будет охватывать то, что я хотел сделать, но если вы действительно хотите общий доступ к свойствам во время компиляции, то я боюсь, что это невозможно.
Может быть, вам следует создать функциональный запрос... дайте мне знать, что я тоже начну с него, поскольку было бы очень полезно включать / выключать определенные вещи из операции командной строки компилятора.
Это принимает аргументы. Пример из файла сборки ant, который я написал:
<target name="compile.gwt" depends="compile">
<java failonerror="true" classname="com.google.gwt.dev.Compiler" fork="true">
<arg value="-war" />
<arg value="${webcontent.dir}" />
<arg value="-style" />
<arg value="obfuscated" />
<arg value="${module.name}" />
<jvmarg value="-Xmx256m" />
<jvmarg value="-Xss64M" />
<classpath>
<path refid="project.class.path" />
<pathelement path="${gwt.home}/gwt-dev-windows.jar" />
</classpath>
</java>
</target>
Я думаю, что это охватывает все флаги:
Отладка и компиляция - Google Web Toolkit - Google Code
Что касается того, передаете ли вы пользовательские агенты, я этого не видел, но я тоже не смотрел.
Если генератор является пользовательским классом, то вы всегда можете передать аргументы -Dname=value команде java и получить к ним доступ с помощью System.getProperty("name"). Даже если генератор является консервативным, возможно, вы могли бы создать его подкласс и внедрить / переопределить свойства, обернув GeneratorContext, переданный суперклассу, и заменив его PropertyOracle.