Мне нужно скомпилировать проект GWT из Java-приложения. Так я создал экземпляр компилятора с CompilerOptions, который устанавливает выходные каталоги и т.д.Как скомпилировать проект GWT программно из приложения Java?
Мой код выглядит так:
Compiler compiler=new Compiler(new CompilerOptions() {......
....
}
ModuleDef def=new ModuleDef("sampleweb");
def.clear();
def.addSourcePackage("D:\\projects\\sampleweb\\src\\com\\sample\\web", new String[]{"client"}, new String[]{}, new String[]{}, true, false);
def.addGwtXmlFile(new File("D:\\projects\\sampleweb\\src\\com\\sampleweb\\web\\Sampleweb.gwt.xml"));
TreeLogger logger=new SwingTreeLogger(new SwingLoggerPanel(Type.ALL, new File("x.txt")));
compiler.run(logger,def);
Когда compiler.run
это называют, NullPointerException как показано, брошено
Exception in thread "main" java.lang.NullPointerException
at com.google.gwt.dev.cfg.ModuleDef.getCompilationState(ModuleDef.java:373)
at com.google.gwt.dev.Precompile.precompile(Precompile.java:246)
at com.google.gwt.dev.Precompile.precompile(Precompile.java:229)
at com.google.gwt.dev.Precompile.precompile(Precompile.java:141)
at com.google.gwt.dev.Compiler.run(Compiler.java:232)
at com.asklepian.TestApp.Starter.main(Starter.java:400)
Как настроить компилятор?
Вам действительно нужно создать 'ModuleDef' с нуля? Вы посмотрели 'ModuleDefLoader'? BTW, 'Compiler' загружает все из classpath, который должен быть' URLClasspath' (GWT будет _scan_ classpath) –
+1. Угадайте, что вы пишете инструмент пользовательского интерфейса для компиляции GWT с Swing. Любые причины для консоли, затмения и IntelliJ недостаточны? – SSR
@ThomasBroyer ya .. Мне нужно создать пользовательские виджеты Ui в соответствии с требованиями пользователя и скомпилировать его для генерации соответствующих JS для разработанных виджетов. Пользователь будет создавать виджеты как один и тот же Java-код, например, мы пишем –