2013-07-11 33 views
0

我对学习JBox2D感兴趣,但我似乎偶然发现了第一个障碍 - 构建库。无法构建JBox2D重复类

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

  1. 退房颠覆,通过项目:
  2. 导入到你的IDE为Maven项目(使用pom.xml中描述的根文件夹)
  3. 运行org.jbox2d.testbed.framework.TestbedMain类

我已经签出的代码,并导入项目中的IntelliJ IDEA(12.1.4),然而,当余吨RY运行TestbedMain类(和其随后编译代码),我收到以下错误:

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

Duplicate class error

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

感谢

回答

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