GWT SuperDev Mode work for IJ 14?
Can someone talk about enhancements that may be coming in IJ 14 with regards to GWT and Super DevMode? Will you be closely tracking the changes / enhancments that are coming in GWT 2.7 and 3.0?
Thanks,
jay
Please sign in to leave a comment.
Hello,
yes, we plan to include support for improved Super Dev Mode to IDEA 14.
--
Nikolay Chashnikov
JetBrains
http://www.jetbrains.com
"Develop with pleasure!"
Hi,
I was testing latest IJ 14 EAP and SuperDevMode and found big problem for me. Until now, I was using two run configurations, one "dev mode" for static resources and one for "super dev mode" support.
I believed, that purpose of latest changes was to allow running app in (super)dev mode only with single run configuration ?
IJ put static resources (html etc.) from webapp folder of project into resulting war folder on its own, so they are available to embeded jetty even if i run configuration in super dev mode. The problem is, that static resources provided by <public> tag in .gwt.xml file are not copied to war folder if I run only super dev mode. Once I run also dev mode, they are copied to resulting war folder, but original static resoruces (html) are overwritten. If I run both in oposite order, then css and images (provided by <public> tag) are cleared from module subfolders.
I know, everything would work if all my resources would be in webapp folder, but I have multi-module setup with inheritance and I also use external library, which behaves the same. I would have to copy resources into all modules plus add ones from external library in order to make it work locally.
So to sum it up:
- in super dev mode, app is missing <public> resources defined in .gwt.xml files.
- in dev mode, app is missing new super dev capability (we must copy bookmarklet).
- I can't no longer run both at the same time, since they colide on port and also overwrite each static resources.
- To make it work as before, I need to change port of one run configuration and run "dev mode" as second. I can then use super dev mode by bookmarklet in browser (there is no bookmarklet icon in down-right corner of window as it would be if I ran only super dev mode).
It would be nice, if IJ could resolve static resources from <public> tags and put them to war folder in super dev mode. Or somehow prevent deleting/overwriting files in resulting war folder if same folder is used by two or more run configurations at the same time.
Thanks for reply.
Pavel
Hello, Pavel,
the problem with 'public' folders (https://youtrack.jetbrains.com/issue/IDEA-130500) should be fixed in IDEA 14 RC build (eap.jetbrains.com/idea14).
--
Nikolay Chashnikov
JetBrains
http://www.jetbrains.com
"Develop with pleasure!"
Hi Nikolay,
in my version 139.144.2 (should be EAP latest) it doesn't seem to be fixed. I downloaded it few moments ago, cleaned all IDE files and then started it with import settings from 13.1 version.
I use GWT 2.6.1 and single run configuration of my module with super dev mode enabled. When I visit folder specified as (-war):
~/.IntelliJIdea14/system/gwt/perun-wui.3af47b2b/perun-wui-registrar.c2e5688f/run/www/PerunRegistrar/
There are no static files (excluding) main .js file of module.
Visiting http://127.0.0.1:9876/PerunRegistrar/ shows no static files (which would be in subfolders like /css or /img). Same goes for: http://127.0.0.1:8888/PerunRegistrar/ where are only HTML pages + js module.
I do have static resources imported like this in /src/main/resources/[packagePath]/[myModule].gwt.xml:
and they are all in resources subfolder relative to this file location.
Module I'm running in super dev mode is inheritig this "resources" module through chain of 2 other modules. I also use resources of GWT modules from https://github.com/gwtbootstrap3/gwtbootstrap3, which are also missing. They are included the same way (css + js). So maybe you resolve only public folders of single module ?
When I run standard dev mode, everything is resolved correctly so I don't think there is a bug in my GWT project.
I noticed also two other things.
When I switch GWT version to 2.7.0-SNAPSHOT and 2.7.0-beta1 (for mvn plugin), same run configuration is missing "superdevmode-launcher-legacy.jar" in -classpath (should be first) and end up with class not found exception for: com.google.gwt.dev.DevMode.
And second, when I created maven run configuration and add "before build" another "run maven goal", then custom working directory for this build is not saved and goal seem to be always skipped.
Thanks for the great work so far. IntelliJ IDEA is best IDE :-).
Pavel
Hello, Pavel,
currently static files are copied from GWT modules specified in 'GWT Modules to load' field in 'GWT Run Configuration' only. We'll fix it to process
inherited modules as well. Until it's fixed you can workaround the problem by adding required GWT modules to 'GWT Modules to load' list by hand.
'superdevmode-launcher-legacy.jar' isn't included into classpath for GWT 2.7 by intention, because the new SuperDevMode launcher is provided by GWT
itself. I've just checked and it works for me with 2.7.0-beta1. If the problem repeats please provide more details about the exception (it would be
better to create an issue in our tracker for that: https://youtrack.jetbrains.com/issues/IDEA).
--
Nikolay Chashnikov
JetBrains
http://www.jetbrains.com
"Develop with pleasure!"
Hello Nikolay,
thanks for the replay. I've checked 'GWT Modules to load' property. It offers only gwt modules from a single maven module classpath (which I select in above option). If I select parent module of my project (agregator like pom.xml), then it offers no gwt modules - option is disabled (instead of offering all gwt modules in all maven submodules - as I expected). It's not a big problem, but it might be nice to load also gwt modules oustide single maven module classapath.
But since you will fix processing of inherited modules, above option might be actually better working like now 'by design'. I guess most gwt projects are not so complex in a structure (maven and gwt inheritance).
Thanks for the info about GWT 2.7. It throws slightly different exception now, when using 2.7.0-beta1 version of GWT (I used SNAPSHOT before). Maybe I'm just doing something wrong. I'll create an issue.
Overall, thanks for the great work :-).
Pavel