For curiosity's sake, I'm developing a small experimental platform/environment-agnostic MVP framework-like thing that's supposed to be as much platform independent as possible. Currently it consists of dumb models, platform-independent presenters (defined in a single abstract main application module), and platform-dependent views (currently there are experiments with Swing, Android and terminal-friendly environment). However, I'm in trouble trying to make GWT another available platform because it requires modules inheritance via .gwt.xml
files. Is there a good way of inheriting non-GWT modules somehow, and keep that abstract platform-independent module .gwt.xml
-free, but still available for the GWT? If it's worthy: all modules are built with Maven, and the project structure is as follows:
[root]
[app] --- platform-independent application
pom.xml -- references fx
[app-gwt] --- GWT-views, entry point, etc
pom.xml --- references app, fx, fx-gwt
.... App.gwt.xml --- references Fx.gwt.xml
[fx] --- the core itself
pom.xml --- references nothing
[fx-gwt] --- GWT-specific adapters for the fx module
pom.xml --- references fx
.... Fx.gwt.xml --- references GWT core
pom.xml
Simply speaking, I don't want either app
or fx
to be GWT-related in any case. Also, I thought that modifying <source path="...">
(referencing to another module source code) can help, but I can't make it work (if it's possible). Here are some similar questions, not sure they can help:
Thanks.
(For simplicity, let's assume that app
and fx
have no external dependencies)
I've investigated the problem deeper, and the general solution is:
maven-source-plugin
plugin. This step is a must because GWT compiles the dependency source code rather than using JAR.inherit
elements to make dependencies.gwt-maven-plugin
with the compileSourcesArtifacts
configuration option set to match the dependencies.See more at http://mojo.codehaus.org/gwt-maven-plugin/user-guide/library.html