On Thursday, February 1, 2018 at 6:11:51 PM UTC+1, Martones wrote:
>
> Hi everyone, and Thomas especially :p
>
> I'm migrating a larger legacy project to the actual GWT standards. I'm 
> running into many problems but I'm sure they are all due to my 
> misunderstanding of how to wire modules between them. Here is the context 
> and my questions : 
>
> *My old project structure was (GWT 2.5) : *
>
> Shared: gwt project - pure clientside gwt
> WebUI: gwt project, depending on Shared
> MobileUI: gwt project, depending on Shared
>
>
> *New project (GWT 2.8.2) :*
>
> Right now I'm trying just to have WebUI working, so I'm inspiring from 
> Thomas's gwt-maven-archetypes (modular webapp).
>

Beware, the "shared" in these archetypes is meant as "shared between client 
and server", where client+shared+server are seen as "a single application" 
but are split out due mostly due to how Maven works: client and shared use 
the same package, so there's no need for a gwt.xml in the shared library 
(for those who know about it, this is somehow similar to a Kotlin 
Multiplatform project).
In your case, the "shared" library is client-side only and shared between 
GWT applications. Not the same kind of "shared". I would use separate 
packages then, and the gwt-lib packaging (which comes with a gwt.xml for 
the library): replace <packaging>jar</packaging> with 
<packaging>gwt-lib</packaging> (or most likely add it), remove the 
maven-source-plugin, add the gwt-maven-plugin with a configured 
<moduleName>, and replace the dependencies to it in web-client and 
mobile-client to a single dependency with <type>gwt-lib</type>.
 

> My architecture is :
>
>    - *root-project*
>    - pom.xml
>          - *shared*
>             - pom.xml
>             - src/main/module.gwt.xml
>          - *web-client*
>             - pom.xml
>             - src/main/module.gwt.xml
>          
> *Questions*
>
>    - When I try to gwt:codeserver :
>
> Loading Java files in (project *shared*).
> [ERROR] Errors in 'file:(some *client *project file)'
> No source code is available for type '(some file from *shared *project)' ; 
> did you forget to inherit a required module?
>
>
>
Do you have the gwt-maven-plugin in "shared" to process/rename that 
module.gwt.xml? Are you missing an <inherits/> to that shared module in 
your client's module.gwt.xml?
 

> Although I have these dependencies set in my *client* pom.xml :
>
> <dependency>
>       <groupId>${project.groupId}</groupId>
>       <artifactId>*shared*</artifactId>
>       <version>${project.version}</version>
>     </dependency>
>     <dependency>
>       <groupId>${project.groupId}</groupId>
>       <artifactId>*shared*</artifactId>
>       <version>${project.version}</version>
>       <classifier>sources</classifier>
>     </dependency>
> I also added maven-source-plugin to both *client* and *shared*.
>
>    - I have some old gwt .jar dependencies that do not seem to have any 
>    maven artifacts, how do I properly inherit these? I was thinking about 
>    <inherits> in module.gwt.xml and adding a <scope>system</scope> dependency 
>    in pom to link to the JAR.
>
>
The <inherits/> is totally independent from your build tool, so if you 
needed it, you still need it.
I would recommend publishing the JARs to a Maven repository and use 
standard dependencies, but a system scope should just work. 
See https://www.cloudbees.com/blog/playing-trade-offs-maven
 

>
>    - I'm running codeserver in the *root-project* right now, is that ok 
>    even when I would like to serv my *mobile* sub-project ? (Using 
>    "modules" parameter I suppose)
>
>
Yes. codeserver would then serve both apps by default, unless you "filter" 
them using the "projects" or "modules" parameter, or just Maven's "-pl 
mobile-client -am"

-- 
You received this message because you are subscribed to the Google Groups "GWT 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-web-toolkit+unsubscr...@googlegroups.com.
To post to this group, send email to google-web-toolkit@googlegroups.com.
Visit this group at https://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

Reply via email to