使用 GWT 编译器,是否可以将属性设置为 GWT 编译器的参数?我知道您可以传入某些已定义的参数,例如 -war 和 -style,但这是用于传入属性值,例如“user.agents”或“locale”。
从我可以看到的文档中,只能在模块描述符中使用属性来设置属性。但我希望能够从我的构建脚本外部控制这些属性。
我尝试查找有关 com.google.gwt.dev.Compile 支持哪些参数的文档,但该类似乎没有任何参考文档。文档中的操作方法很长,但细节却很短。
使用 GWT 编译器,是否可以将属性设置为 GWT 编译器的参数?我知道您可以传入某些已定义的参数,例如 -war 和 -style,但这是用于传入属性值,例如“user.agents”或“locale”。
从我可以看到的文档中,只能在模块描述符中使用属性来设置属性。但我希望能够从我的构建脚本外部控制这些属性。
我尝试查找有关 com.google.gwt.dev.Compile 支持哪些参数的文档,但该类似乎没有任何参考文档。文档中的操作方法很长,但细节却很短。
答案是不!
我在提交者新闻组中问了完全相同的问题,目前没有任何可用的信息。
他们正在考虑增加对提供额外 .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 来将其子类化并注入/覆盖属性。