2010-07-05 186 views
1

我是一個與Hibernate集成的Java開源項目的貢獻者。我對Open Source場景相當陌生(作爲貢獻者),並希望提供關於如何管理依賴關係的建議。管理OSS項目的依賴關係

在我們的項目中管理對Hibernate代碼庫的更改的最佳策略/方法是什麼?

例如,在我們的代碼深深依偎如下一行:

ResultTransformer transformer = new PassThroughResultTransformer(); 

這裏默認的構造使我們的問題:

  • 這是Hibernate 3.2.x中細,
  • 在Hibernate 3.3.x中它被標記爲已棄用,並引入了靜態成員: PassThroughResultTransformer.INSTANCE
  • 在Hibernate 3.4中,默認的構造函數被刪除。

有一個明確的岔路口,我們無法支持休眠3.2,並且在同一類中休眠3.4。

在我們的代碼庫中管理這些問題的最佳方法是什麼?

爲Hibernate的每個發行版分配項目似乎都是一場噩夢,尤其是在使用我們自己的功能發佈進行分層時。

回答

1

您必須先決定要支持的版本。例如,如果您絕對想要同時支持3.2和3.4,則需要編寫代碼,在運行時可能會通過反射來做正確的事情。

您將失去使用反射進行編譯時檢查,但是您將支持庫的兩個版本。或者你可以說「從版本X開始,我們只支持Hibernate 3.3和更高版本」。

+0

反射工程。 – 2010-07-05 20:35:34