Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate to the new generation gwt-maven-plugin #6602

Closed
1 task done
azatsarynnyy opened this issue Oct 5, 2017 · 6 comments
Closed
1 task done

Migrate to the new generation gwt-maven-plugin #6602

azatsarynnyy opened this issue Oct 5, 2017 · 6 comments
Assignees
Labels
kind/enhancement A feature request - must adhere to the feature request template. sprint/current target/branch Indicates that a PR will be merged into a branch other than master.
Milestone

Comments

@azatsarynnyy
Copy link
Member

azatsarynnyy commented Oct 5, 2017

CQ:

Related to Che 6 branch only.
Should also fix #2595

The goal of this task is migrate from the legacy org.codehaus.mojo:gwt-maven-plugin (aka Mojo's) to the new one - net.ltgt.gwt.maven:gwt-maven-plugin.

Cons of the legacy plugin:

  • since 7 Apr 2017 Mojo's maven plugin has been considered as a legacy;
  • designed a long time ago when most of the GWT projects contained client, server and shared code within the same maven module. So the old plugin promotes hacking to make it work. E.g. it's really hard to configure launching Super DevMode from the command line regardless of the used IDE;
  • Mojo's plugin is tightly linked to a specific version of GWT.

Some of the advantages of the new plugin:

  • the new plugin is considered as the new generation GWT maven plugin and it's strongly encouraged to use it instead of the legacy one;
  • designed from the beginning with multi-module projects in mind and follows best practices;
  • independent of the GWT version (should work with GWT version provided by the gwt-dev dependency).

Opportunities Che will get with the new plugin:

  • better UX for plugins' developers:
    • flexible options for generating GWT-module descriptors (.gwt.xml):
      • it may be generated automatically if you follow the provided layout
      • it may be generated from a template
      • <inherits> may be generated from the project's dependencies
  • proceeding from the previous points we don't need to use our GwtXmlGenerator with exec-maven-plugin execution;
  • correct work with multi-module projects, e.g., Super DevMode.

To migrate to the new plugin we need:

  • use gwt-lib lifecycle/packaging for all artifacts with client code;
  • use gwt-app lifecycle/packaging for assembly-ide-war;
  • slightly adapt projects structure according to the layout provided by the new gwt-maven-plugin;
  • avoid using GwtXmlGenerator;
  • get rid of Mojo's gwt-maven-plugin.
@azatsarynnyy azatsarynnyy added kind/enhancement A feature request - must adhere to the feature request template. target/branch Indicates that a PR will be merged into a branch other than master. team/ide labels Oct 5, 2017
@azatsarynnyy azatsarynnyy self-assigned this Oct 5, 2017
@azatsarynnyy azatsarynnyy added the status/in-progress This issue has been taken by an engineer and is under active development. label Oct 6, 2017
@benoitf
Copy link
Contributor

benoitf commented Oct 10, 2017

I would add as well that with the new plugin and the new HEAD-MASTER branch of GWT (will be 2.8.2) we can use Java9 binaries to build the GWT modules.

https://github.com/gwtproject/gwt/milestone/18

@gorkem gorkem mentioned this issue Oct 10, 2017
14 tasks
@vparfonov
Copy link
Contributor

vparfonov commented Oct 10, 2017

@benoitf sorry but o miss your point about Java 9, you want to say what GWT 2.8.2 will support Java 9?

@benoitf
Copy link
Contributor

benoitf commented Oct 10, 2017

@vparfonov
Currently, the "master" branch of gwt project received patches that allow to build GWT modules (still using Java8 compliance level) with a Java 9 runtime. (It's mainly because in Java9 boot classloader is not URLClassLoader

These patches will be included in the next minor version which is called 2.8.2

With this enhancement and the move to the new plugin (that allow to not be tied to a GWT version) we will be able to build IDE.war module with a Java 9 runtime.

@vparfonov
Copy link
Contributor

@benoitf thanks for explanation

@azatsarynnyy
Copy link
Member Author

Short status update.
The new gwt-maven-plugin is already in use for compiling IDE in Che 6 (see #6822). So now we do not depend on the legacy gwt-maven-plugin.
Currently, I'm finalizing Che's maven modules adaptation for gwt-lib/gwt-app lifecycle.

@azatsarynnyy azatsarynnyy added this to the 6.0.0-M1 milestone Oct 31, 2017
@azatsarynnyy azatsarynnyy removed the status/in-progress This issue has been taken by an engineer and is under active development. label Oct 31, 2017
@azatsarynnyy
Copy link
Member Author

Has been done in #7084

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/enhancement A feature request - must adhere to the feature request template. sprint/current target/branch Indicates that a PR will be merged into a branch other than master.
Projects
None yet
Development

No branches or pull requests

3 participants