Signed-off-by: Oleksandr Garagatyi <ogaragat@redhat.com> |
||
|---|---|---|
| .. | ||
| che-core-dyna-provider-generator-maven-plugin | ||
| che-core-ide-api | ||
| che-core-ide-app | ||
| che-core-ide-generators | ||
| che-core-ide-stacks | ||
| che-core-ide-templates | ||
| che-core-ide-ui | ||
| che-core-orion-editor | ||
| che-ide-core | ||
| che-ide-gwt-app | ||
| commons-gwt | ||
| gwt-logger | ||
| README.md | ||
| pom.xml | ||
README.md
Che IDE
- Making a GWT library for the IDE GWT app
- Including an IDE plugin to the IDE GWT app
- GWT Super DevMode
Making a GWT library for the IDE GWT app
GWT library it's a JAR that contains compiled classes, project's (re-)sources, GWT module descriptor (*.gwt.xml) and possibly other GWT-specific files.
pom.xml
To make a GWT library (e.g., IDE plugin) for using it in IDE GWT app just do the two steps in your pom.xml:
- add the
gwt-maven-pluginconfiguring GWT module name:<plugin> <groupId>net.ltgt.gwt.maven</groupId> <artifactId>gwt-maven-plugin</artifactId> <extensions>true</extensions> <configuration> <moduleName>org.eclipse.che.plugin.python.Python</moduleName> </configuration> </plugin> - set packaging to
gwt-libwhich triggers a Maven lifecycle that will build agwt-libartifact.
*.gwt.xml
Project's *.gwt.xml file is generated within the gwt-lib Maven lifecycle and contains:
- the declarations for the default source folders:
<source path="client"/> <source path="shared"/> <super-source path="super"/> <inherits/>directives for the project's direct dependencies which were packaged as agwt-lib.
Optional template may be provided in src/main/module.gwt.xml for generating project's *.gwt.xml file.
The most common cases when you may require a template:
- need to override the default source folders, like here;
- need to add
<inherits/>directive for a GWT lib that isn't packaged as agwt-libartifact (doesn't contain GWT-specific meta information).
Consuming the shared libraries
The shared libraries don't require any GWT-specific files or configuration in pom.xml to be consumed by a GWT library.
To use shared code in a GWT library:
- declare a dependency on the "normal" artifact (JAR with compiled classes);
- declare a dependency on the "sources" artifact (with
<classifier>sources</classifier>).
See an example here.
Including an IDE plugin to the IDE GWT app
Just add a Maven dependency on the appropriate artifact (gwt-lib) to the che-ide-gwt-app's pom.xml.
In case the added artifact represents Che's sub-project, dependency should be declared with <type>gwt-lib</type> or <classifier>sources</classifier> to be able to use it with Super DevMode.
GWT Super DevMode
There are two options available to launch GWT Super DevMode, depending on the state of the Che sources: whether it's built or not since a lot of sources are generated during the Maven build.
- Case 1: Che sources have been already built. Use the following command:
mvn gwt:codeserver -pl :che-ide-gwt-app -am -Dmaven.main.skip -Dmaven.resources.skip -Dche.dto.skip -Dskip-enforce -Dskip-validate-sources
- Case 2: Che sources haven't been built, e.g. freshly cloned or after executing
mvn cleanor you just don't need to build the whole project. Use the following command:
mvn gwt:codeserver -pl :che-ide-gwt-app -am -Dskip-enforce -Dskip-validate-sources
The second one requires more time to launch GWT CodeServer since the second one it executes process-classes build phase for each maven module. So using the first command is preferable.
Note, both commands have to be performed in the root folder of the Che project.