2

我已经处理了好几个小时了。

尝试编译 Maven GWT 项目,在 GWT 编译点收到以下错误:

[INFO] 编译模块 com.ephesoft.dcma.gwt.login.Login
[INFO] 验证新编译的单元
[INFO] [ERROR] '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] 第 47 行: com.ephesoft.dcma.core.common.DataType 类型没有可用的源代码;你忘了继承一个必需的模块吗?
[信息] [错误] '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] 第 54 行:没有可用于类型 com.ephesoft.dcma.batch.schema.Direction 的源代码;你忘了继承一个必需的模块吗?
[信息] [错误] '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'
...
...

而这样的例子不胜枚举...

这是我的 webapp pom 文件 -
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>

所以Login包含了Core,而Core又包含了Common,那么有什么问题呢?

我会非常感谢帮助!

4

2 回答 2

5

如果我正确理解了您需要编译依赖于另一个的 gwt-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>

核心模块的<compileSourcesArtifact>groupId:artifactId</compileSourcesArtifact>外观和位置<compileSourcesArtifact>com.google.gwt:gwt-user</compileSourcesArtifact>

<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>
于 2013-09-27T10:10:29.970 回答
0

为了编译依赖于另一个 maven 模块的 GWT 模块,我必须显式地将依赖项添加到依赖项的源中:

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

当然,正如@Teymur 所说,从依赖项部署源代码:

<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>

这在没有<compileSourcesArtifacts>设置的情况下工作。

于 2020-09-26T16:40:26.837 回答