无法构建Box2D重复类)

时间:2013-07-11 22:19:36

标签: java intellij-idea jbox2d

我对学习JBox2D感兴趣,但我似乎偶然发现了第一个障碍 - 建立图书馆。

Quick-start instructions指定以下简单步骤:

  1. 通过Subversion查看项目:
  2. 作为Maven项目导入IDE(使用根文件夹中的pom.xml描述符)
  3. 运行org.jbox2d.testbed.framework.TestbedMain类
  4. 我已经检查了代码并将项目导入IntelliJ IDEA(12.1.4),但是,当我尝试运行TestbedMain类(并随后编译代码)时,我收到以下错误:

    java: duplicate class: org.jbox2d.common.PlatformMathUtils
    java: duplicate class: org.jbox2d.common.Timer
    

    Duplicate class error

    我做错了什么/我错过了什么?

    由于

1 个答案:

答案 0 :(得分:1)

查看POM for the jbox2d-library module,我看到有一个构建部分明确忽略了gwtemul包下的类:

<build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <excludes>
            <exclude>**/gwtemul/**</exclude>
          </excludes>
        </configuration>
      </plugin>
    </plugins>
</build>

在我看来,我应该通过MVN构建这个库,并将构建的JAR附加为jbox2d-testbed模块的依赖项。

但是,我发现修改这些类的包声明也解决了这个问题:

package org.jbox2d.gwtemul.org.jbox2d.common;

/**
 * A GWT-compatible implementation of the platform math utilities.
 */
class PlatformMathUtils {

  public static final float fastPow(float a, float b) {
    return (float) Math.pow(a, b);
  }
}

因为无论如何它们都会被构建忽略,我不认为它会造成任何伤害。

一旦我这样做了,我就可以运行org.jbox2d.testbed.framework.TestbedMain类了,我得到了预期的GUI:

TestbedMain Running