2013-07-11 70 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