che-server/ide
Oleksandr Garagatyi ba7a1e2e51 CHE-7010: Add volumes into machine model object
Signed-off-by: Oleksandr Garagatyi <ogaragat@redhat.com>
2017-11-20 16:14:47 +02:00
..
che-core-dyna-provider-generator-maven-plugin RELEASE: Set next development version (#7112) 2017-10-31 16:46:30 +02:00
che-core-ide-api CHE-7010: Add volumes into machine model object 2017-11-20 16:14:47 +02:00
che-core-ide-app findResource method refactoring related to hierarchical load resourcetree (#7449) 2017-11-20 13:14:29 +02:00
che-core-ide-generators Get rid of GwtXmlGenerator since we are using gwt:generate-module mojo (#7420) 2017-11-17 10:22:02 +02:00
che-core-ide-stacks Remove snapshotting mechanism; 2017-11-13 14:25:40 +02:00
che-core-ide-templates CHE-6215. Fix parsing of servers for creating preview URL 2017-11-07 09:43:39 +01:00
che-core-ide-ui findResource method refactoring related to hierarchical load resourcetree (#7449) 2017-11-20 13:14:29 +02:00
che-core-orion-editor added style for css elements for css file types 2017-11-20 13:33:59 +02:00
che-ide-core RELEASE: Set next development version (#7112) 2017-10-31 16:46:30 +02:00
che-ide-gwt-app UI improvements (#7396) 2017-11-20 11:22:52 +02:00
commons-gwt org.eclipse.che.ide.QueryParameters must cache the query parameters because IDE changes window's location (#7428) 2017-11-17 14:10:39 +02:00
gwt-logger RELEASE: Set next development version (#7112) 2017-10-31 16:46:30 +02:00
README.md Update doc for launching GWT SDM (#7378) 2017-11-15 11:53:41 +02:00
pom.xml RELEASE: Set next development version (#7112) 2017-10-31 16:46:30 +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.