che-server/ide
Roman Iuvshyn 506210325a
RELEASE: set next dev version (#7523)
2017-11-23 12:50:56 +02:00
..
che-core-dyna-provider-generator-maven-plugin RELEASE: set next dev version (#7523) 2017-11-23 12:50:56 +02:00
che-core-ide-api RELEASE: set next dev version (#7523) 2017-11-23 12:50:56 +02:00
che-core-ide-app RELEASE: set next dev version (#7523) 2017-11-23 12:50:56 +02:00
che-core-ide-generators RELEASE: set next dev version (#7523) 2017-11-23 12:50:56 +02:00
che-core-ide-stacks RELEASE: set next dev version (#7523) 2017-11-23 12:50:56 +02:00
che-core-ide-templates RELEASE: set next dev version (#7523) 2017-11-23 12:50:56 +02:00
che-core-ide-ui RELEASE: set next dev version (#7523) 2017-11-23 12:50:56 +02:00
che-core-orion-editor RELEASE: set next dev version (#7523) 2017-11-23 12:50:56 +02:00
che-ide-core RELEASE: set next dev version (#7523) 2017-11-23 12:50:56 +02:00
che-ide-gwt-app RELEASE: set next dev version (#7523) 2017-11-23 12:50:56 +02:00
commons-gwt RELEASE: set next dev version (#7523) 2017-11-23 12:50:56 +02:00
gwt-logger RELEASE: set next dev version (#7523) 2017-11-23 12:50:56 +02:00
README.md Update doc for launching GWT SDM (#7378) 2017-11-15 11:53:41 +02:00
pom.xml RELEASE: set next dev version (#7523) 2017-11-23 12:50:56 +02:00

README.md

Che IDE

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-plugin configuring 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-lib which triggers a Maven lifecycle that will build a gwt-lib artifact.

*.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 a gwt-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 a gwt-lib artifact (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 clean or 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.