2
我正在用SBT構建一個Spark項目。更改庫SBT中特定代碼段的依賴關係?
當我包含一個庫依賴項,程序的一部分將工作,另一部分將拋出一個異常(因爲在libraryDependencies
中指定了錯誤的版本)。當我刪除libraryDependencies
時,這是相反的。
有沒有辦法在編譯或運行時動態更改libraryDependencies
(更改版本)?
到(僞)類似:
libraryDependencies.set("org.apache.hadoop.hadoop-client", "2.0.0-cdh4.5.0")
// here comes the code depending on hadoop-client" % "2.0.0-cdh4.5.0
libraryDependencies.set("org.apache.hadoop.hadoop-client", "1.0.4")
// here comes the code depending on hadoop-client" % "1.0.4
難道這由scoping做?
您如何期望在編譯和運行時擁有不同版本的庫?您可能會根據其他設置進行不同的設置,但您所追求的內容對我來說沒有意義。需要更多的幫助來理解這個問題。您想在不同的CodeBlocks中添加什麼?我認爲你需要不同的模塊,有效地創建[多項目構建](http://www.scala-sbt.org/release/docs/Getting-Started/Multi-Project.html)。 –
謝謝你的評論@JacekLaskowski 也許我應該更好地表達它,我想依賴程序不同部分的不同圖書館。 (這裏:我想使用一個版本的庫從HDFS中讀取數據,然後使用該庫的另一個版本(mapreduce)將此文件寫入到Cassandra中。這是否可以用於多項目構建? – daumann
您應該將註釋添加到因爲它使得它更容易理解,你應該明確地使用多項目構建,其中有兩個模塊 - HDFS閱讀器和Cassandra編寫器。它們是獨立的,因爲你已經指出(不僅因爲它們使用的庫)。 –