Domanda

I've been tackling with this for hours now.

Trying to compile a Maven GWT project, getting the following error at the GWT compilation point:

[INFO] Compiling module com.ephesoft.dcma.gwt.login.Login
[INFO] Validating newly compiled units
[INFO] [ERROR] Errors in 'jar:file:/D:/workspace2/dcma-root/dcma-gwt/dcma-gwt-core/target/dcma-gwt-core-0.0.14-> SNAPSHOT.jar!/com/ephesoft/dcma/gwt/core/client/validator/ValidatorFactory.java'
[INFO] [ERROR] Line 47: No source code is available for type com.ephesoft.dcma.core.common.DataType; did you forget to inherit a required module?
[INFO] [ERROR] Errors in 'jar:file:/D:/workspace2/dcma-root/dcma-gwt/dcma-gwt-core/target/dcma-gwt-core-0.0.14-SNAPSHOT.jar!/com/ephesoft/dcma/gwt/core/client/ui/RotatableImage.java'
[INFO] [ERROR] Line 54: No source code is available for type com.ephesoft.dcma.batch.schema.Direction; did you forget to inherit a required module?
[INFO] [ERROR] Errors in 'jar:file:/D:/workspace2/dcma-root/dcma-gwt/dcma-gwt-core/target/dcma-gwt-core-0.0.14-SNAPSHOT.jar!/com/ephesoft/dcma/gwt/core/shared/comparator/DocumentTypeComparator.java'
...
...

and the list goes on...

this is my webapp pom file -
dcma-root\dcma-webapp\pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <packaging>war</packaging>

    <parent>
        <groupId>com.ephesoft.dcma</groupId>
        <artifactId>dcma-gwt</artifactId>
        <version>0.0.14-SNAPSHOT</version>
        <relativePath>../dcma-gwt</relativePath>
    </parent>
    <artifactId>dcma-webapp</artifactId>
    <name>DCMA: Web application Model</name>
    <description>The DCMA web Application model.</description>

    <dependencies>
        <dependency>
            <groupId>com.ephesoft.dcma</groupId>
            <artifactId>dcma-gwt-home</artifactId>
        </dependency>
        <dependency>
            <groupId>com.ephesoft.dcma</groupId>
            <artifactId>dcma-gwt-login</artifactId>
        </dependency>
        <dependency>
            <groupId>com.ephesoft.dcma</groupId>
            <artifactId>dcma-gwt-review-validate</artifactId>
        </dependency>
        <dependency>
            <groupId>com.ephesoft.dcma</groupId>
            <artifactId>dcma-gwt-admin</artifactId>
        </dependency>
        <dependency>
            <groupId>com.ephesoft.dcma</groupId>
            <artifactId>dcma-folder-monitor</artifactId>
        </dependency>
        <dependency>
            <groupId>com.ephesoft.dcma</groupId>
            <artifactId>dcma-heart-beat</artifactId>
        </dependency>
        <dependency>
            <groupId>com.ephesoft.dcma</groupId>
            <artifactId>dcma-mail-import</artifactId>
        </dependency>
        <dependency>
            <groupId>com.ephesoft.dcma</groupId>
            <artifactId>dcma-gwt-batchInstance</artifactId>
        </dependency>
        <dependency>
            <groupId>com.ephesoft.dcma</groupId>
            <artifactId>dcma-gwt-reporting</artifactId>
        </dependency>       
        <dependency>
            <groupId>com.ephesoft.dcma</groupId>
            <artifactId>dcma-gwt-upload-batch</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-eclipse-plugin</artifactId>
                <version>2.8</version>
                <configuration>
                    <additionalProjectnatures>
                        <projectnature>org.springframework.ide.eclipse.core.springnature</projectnature>
                        <projectnature>com.google.gwt.eclipse.core.gwtNature</projectnature>
                        <projectnature>com.google.appengine.eclipse.core.gaeNature</projectnature>
                    </additionalProjectnatures>
                    <additionalBuildcommands>
                        <buildcommand>org.springframework.ide.eclipse.core.springbuilder</buildcommand>
                        <buildcommand>com.google.gwt.eclipse.core.gwtProjectValidator</buildcommand>
                        <buildcommand>com.google.appengine.eclipse.core.enhancerbuilder</buildcommand>
                    </additionalBuildcommands>
                    <classpathContainers>
                        <classpathContainer>com.google.gwt.eclipse.core.GWT_CONTAINER</classpathContainer>
                    </classpathContainers>
                    <wtpversion>1.5</wtpversion>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>gwt-maven-plugin</artifactId>
                <version>${gwt.maven.plugin.version}</version>
                <executions>
                    <execution>
                        <configuration>
                            <modules>
                                <module>com.ephesoft.dcma.gwt.core.Core</module>
                                <module>com.ephesoft.dcma.batch.Batch</module>
                                <module>com.ephesoft.dcma.gwt.login.Login</module>
                                <module>com.ephesoft.dcma.gwt.admin.bm.BatchClassManagement</module>
                                <module>com.ephesoft.dcma.gwt.home.BatchList</module>
                                <module>com.ephesoft.dcma.gwt.rv.ReviewValidate</module>
                                <module>com.ephesoft.dcma.gwt.batchInstance.BatchInstance</module>
                                <module>com.ephesoft.dcma.gwt.reporting.Report</module>
                                <module>com.ephesoft.dcma.gwt.uploadbatch.UploadBatch</module>
                            </modules>
                            <localWorkers>2</localWorkers>
                            <extraJvmArgs>-Xmx768m</extraJvmArgs>
                            <sourcesOnPath>false</sourcesOnPath>
                            <force>true</force>
                        </configuration>
                        <goals>
                            <goal>compile</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <profile>
            <id>stand-alone</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>exec-maven-plugin</artifactId>
                        <version>1.1.1</version>
                        <executions>
                            <execution>
                                <phase>test</phase>
                                <goals>
                                    <goal>java</goal>
                                </goals>
                                <configuration>
                                    <mainClass>com.ephesoft.dcma.webapp.DCMAExecuter</mainClass>
                                    <arguments>
                                        <argument>none</argument>
                                    </arguments>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
</project>

dcma-root\dcma-gwt\dcma-gwt-login\src\main\java\com\ephesoft\dcma\gwt\login\Login.gwt.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 1.6.4//EN" "http://google-web-toolkit.googlecode.com/svn/tags/1.6.4/distro-source/core/src/gwt-module.dtd">
<module rename-to='login'>
    <inherits name='com.google.gwt.user.User' />
    <inherits name='com.ephesoft.dcma.gwt.core.Core' />

    <entry-point class='com.ephesoft.dcma.gwt.login.client.LoginEntryPoint' />

</module>

dcma-root\dcma-gwt\dcma-gwt-core\src\main\java\com\ephesoft\dcma\gwt\core\Core.gwt.xml:

<?xml version="1.0" encoding="UTF-8"?>
<module rename-to='core'>
    <inherits name='com.google.gwt.user.User' />
    <source path='client' />
    <source path='shared' />
    <inherits name="com.googlecode.gwt.math.Math" />
    <inherits name="com.ephesoft.dcma.batch.Batch" />
    <inherits name="com.ephesoft.dcma.core.Common" />
    <inherits name="com.ephesoft.dcma.da.Property" />
    <inherits name="com.google.gwt.i18n.I18N" />

    <inherits name='com.google.gwt.user.theme.standard.Standard' />
    <stylesheet src='css/style.css' />



</module>

dcma-root\dcma-gwt\dcma-gwt-core\src\main\java\com\ephesoft\dcma\core\Common.gwt.xml:

<?xml version="1.0" encoding="UTF-8"?>
<module rename-to='coreCommon'>

    <inherits name='com.google.gwt.user.User' />
    <source path="common" />
</module>

so Login includes Core, which in turn includes Common, so what's the problem?

I'd appreciate help most deeply!!!

È stato utile?

Soluzione

If I rightly understood the question you need compile gwt-module which is depended another? For that task we used in depended module

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>gwt-maven-plugin</artifactId>
    <version>${gwt.version}</version>
    <executions>
      <execution>
        <goals>
          <goal>compile</goal>
        </goals>
      </execution>
    </executions>
    <configuration>
      <extraJvmArgs>-Xmx1024M</extraJvmArgs>
      <localWorkers>3</localWorkers>
      <optimizationLevel>${gwt.optimize}</optimizationLevel>
      <style>OBF' -XenableClosureCompiler '-XenableClosureCompiler</style>
      <workDir>${project.build.directory}/gwt/temp</workDir>
      <deploy>${project.build.directory}/WEB-INF/deploy</deploy>
      <modules>
        <module>${module}</module>
      </modules>
      <hostedWebapp>${webappDirectory}</hostedWebapp>
      <logLevel>WARN</logLevel>
      <compileSourcesArtifacts>
        <compileSourcesArtifact>groupId:artifactId</compileSourcesArtifact>
      </compileSourcesArtifacts>
    </configuration>
  </plugin>

Where <compileSourcesArtifact>groupId:artifactId</compileSourcesArtifact> looks like <compileSourcesArtifact>com.google.gwt:gwt-user</compileSourcesArtifact> and in core module

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-source-plugin</artifactId>
    <executions>
      <execution>
        <id>attach-sources</id>
        <phase>package</phase>
        <goals>
          <goal>jar</goal>
        </goals>
      </execution>
    </executions>
  </plugin>

Altri suggerimenti

For compiling a GWT module that depends on another maven module I had to explicitly add a dependency to the sources of the dependency:

<dependency>
    <groupId>...</groupId>
    <artifactId>...</artifactId>
    <version>...</version>
    <classifier>sources</classifier>
    <scope>compile</scope>
</dependency>

And of cause deploy the sources from the dependency, as @Teymur states:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-source-plugin</artifactId>
    <version>3.2.0</version>
    <executions>
        <execution>
            <id>attach-sources</id>
            <phase>verify</phase>
            <goals>
                <goal>jar-no-fork</goal>
            </goals>
        </execution>
    </executions>
</plugin>

This worked without the <compileSourcesArtifacts> setting.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top