gwtgwt-maven-plugin

"No source code is available for type... did you forget to inherit", same module, just sibling source-directory (migrating the gwt-maven-plugin)


I am getting "No source code is available for type net.jzaruba.theapp.data.ColorFormResource; did you forget to inherit a required module?" error(s) in a class (net.jzaruba.theapp.client.TheEntryPoint) that is sitting in the same maven module, just in a sibling directory/package next to the allegedly missing types.

TheApp/Web/src/main/module.gwt.xml:

<module>
    <inherits name='com.google.gwt.user.User' />
    <inherits name='net.sf.gilead.Adapter4Gwt15'/>
    <inherits name="com.smartgwt.SmartGwt"/>
    <inherits name="com.smartgwt.tools.SmartGwtTools"/>
    <inherits name="com.googlecode.gwt.math.Math"/>

    <!-- MY OTHER MODULES -->
    <inherits name="net.jzaruba.theapp.Core" />
    <inherits name="net.jzaruba.theapp.Domain" />

    <source path='net/jzaruba/theapp/client'/> <!-- HERE LIVES THE OFFENDING CLASS -->
    <source path='net/jzaruba/theapp/data'/> <!-- THE SUPPOSEDLY UNREACHABLE TYPES -->

    <entry-point class='net.jzaruba.theapp.client.TheEntryPoint' />
</module>

TheApp/Web/pom.xml:

<project>
  ...
  <packaging>gwt-app</packaging>
  ...
  <build>
    <plugins>

      <plugin>
        <groupId>net.ltgt.gwt.maven</groupId>
        <artifactId>gwt-maven-plugin</artifactId>
        <version>1.0.0</version>
        <extensions>true</extensions>

        <configuration>
          <moduleName>net.jzaruba.theapp.TheApp</moduleName>
          <jvmArgs>-javaagent:${org.projectlombok:lombok:jar}=ECJ</jvmArgs>
        </configuration>

        <executions>
          <execution>
            <goals>
              <goal>compile</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>

Solution

  • The source paths should be relative to the root of the GWT module, which in your case is net/jzaruba/theapp. So you should have this:

    <source path='client'/>
    <source path='data'/>
    

    I think it was finding the class in client because that is a GWT default if no other paths exist.