2013-08-01 36 views
2

我對Java/Scala/Play/Eclipse完全不熟悉。到目前爲止,我的經驗主要是使用C#和Visual Studio。如何將依賴關係添加到第二個項目中的Eclipse中的Play框架項目?

我想知道如何在Eclipse中將Scala項目的依賴添加到我的Play項目中。在Visual Studio中,這是創建類庫項目的一個問題,並將其添加爲另一個項目的引用。 IDE管理構建過程。

我試着在我Build.scala文件中添加一個新的項目:

import sbt._ 
import Keys._ 
import play.Project._ 

object ApplicationBuild extends Build { 

    val appName   = "blogUI" 
    val appVersion  = "1.0-SNAPSHOT" 

    val appDependencies = Seq(
    // Add your project dependencies here, 
    jdbc, 
    anorm 
) 

    // The new project; everything else was boilerplate 
    val blogPlatform = Project("blogPlatform", file("blogPlatform")).settings(
    scalaVersion := "2.10.2" 
) 

    val main = play.Project(appName, appVersion, appDependencies).settings(
    // Add your own project settings here  
) 

} 

這不工作 - 它結束了創建我blogUI播放項目內的空blogPlatform目錄,而不是指我現有的blogPlatform項目。我對sbt也不熟悉,所以我可能完全濫用這個工具。

我也嘗試通過Eclipse添加blogPlatform項目作爲依賴項,它工作 - 直到我從終端運行「play eclipse」。這消除了我在IDE中所做的任何更改。

理想情況下,我想要一種方法將blogPlatform作爲依賴項添加到blogUI項目中,這樣Eclipse和Play就會尊重它,並且在重新構建blogUI時重新構建blogPlatform。所以,只需將一個預編譯的jar文件添加到Play項目的lib目錄中是不夠的(另一種我遇到但未嘗試過的方法)。

任何建議或指向工具或資源將不勝感激!

+0

我認爲這將意味着設置一個自定義多項目sbt構建。我一直在閱讀關於多項目構建的sbt文檔,並發現這個問題(http://stackoverflow.com/questions/9954272/play-framework-as-sbt-non-root-module),但我仍然不太滿意掌握了sbt以及如何在Play中使用它... –

回答

1

如果您的兩個項目緊密結合,那麼多項目構建可能最有意義。在本地設置多項目構建時,我發現這個blog post from fortytwo非常有用。在運行play eclipse時,您應該自動生成具有正確依賴關係的多個Eclipse項目文件。

如果你的項目不相關,外部化的依賴關係可能會更有意義。從您的第一個項目中,您可以運行play publish-local將jar文件部署到本地Ivy存儲庫; sbt docs說明如何將發佈配置到中央存儲庫。從您的第二個項目中,您可以添加指向此工件的"groupId" % "artifactId" % "1.0-SNAPSHOT"依賴項。不幸的是,Eclipse不能很好地配合這個配置,並且在導入這兩個項目之後,必須用項目依賴關係手動替換jarfile依賴項。

相關問題