2015-01-04 30 views
4

我有一個使用sbt在我的虛擬機上構建的項目。在構建過程中,它會在虛擬機的〜/ root /目錄中安裝幾個庫。例如,.classpath文件的部分看起來像:如何在使用Eclipse的虛擬機上開發?

<classpathentry kind="lib" path="/root/.ivy2/cache/org.apache.avro/avro/jars/avro-1.7.6.jar"/> 
<classpathentry kind="lib" path="/root/.ivy2/cache/org.codehaus.jackson/jackson-core-asl/jars/jackson-core-asl-1.9.13.jar"/> 
<classpathentry kind="lib" path="/root/.ivy2/cache/org.codehaus.jackson/jackson-mapper-asl/jars/jackson-mapper-asl-1.9.13.jar"/> 
<classpathentry kind="lib" path="/root/.ivy2/cache/org.apache.commons/commons-compress/jars/commons-compress-1.4.1.jar"/> 

我在主機上運行Eclipse在我的Mac OS,當我導入一個Eclipse項目(通過桑巴貼裝)我結束了一堆的導入錯誤,因爲類路徑只在我的客機上有效。

從主機運行Eclipse應用程序時,在虛擬環境中開發Java/Scala項目的典型/標準方式是什麼?

我最好在我的主機上做所有的開發嗎?

+2

我不知道有一種「典型」方式,但我經常看到項目移動到maven並使用「eclipse:eclipse」目標以便攜方式生成項目設置。 –

回答

0

這不是上述問題的典型或標準解決方案所必需的。但是,它解決了我使用sbt-eclipse插件生成項目文件時的具體問題。

原來,你可以傳入一個相對路徑到sbt-eclipse插件並傳播到.classpath文件。

./sbt eclipse -ivy ./ivy 

這樣,當您將項目導入到Eclipse中時,它將使用基於根項目路徑的所有相對路徑。它似乎工作到目前爲止。

<classpathentry kind="lib" path="./ivy/cache/org.apache.avro/avro-compiler/bundles/avro-compiler-1.7.6.jar"/> 
<classpathentry kind="lib" path="./ivy/cache/org.apache.avro/avro/bundles/avro-1.7.6.jar"/> 
<classpathentry kind="lib" path="./ivy/cache/org.codehaus.jackson/jackson-core-asl/jars/jackson-core-asl-1.9.13.jar"/> 
<classpathentry kind="lib" path="./ivy/cache/org.codehaus.jackson/jackson-mapper-asl/jars/jackson-mapper-asl-1.9.13.jar"/> 
<classpathentry kind="lib" path="./ivy/cache/org.apache.commons/commons-compress/jars/commons-compress-1.4.1.jar"/> 

請注意,雖然這解決了導入錯誤,但應用程序仍在主機而不是虛擬機上運行。

相關問題