2014-04-17 85 views
0

我正在從常春藤搬到等級。從常春藤遷移到gradle問題

在常春藤我能夠有一個屬性文件,其中包含我所有的依賴項的版本。

此外,當我發佈我更新此文件。

這是版本的中央控制。非常舒服。例如:

Versions.properties:


log4j.ver=1.14 
    commons-lang.ver=1.1 

而且的ivy.xml:


<dependencies> 
    <dependency org="log4j" module="log4j" ver="log4j.ver"/> 
    </dependencies> 

我可以在gradle產出相同,但性能都表示要棄用不久。 Gradle中的任何等價概念?

另一個問題是能否解決工作區中的依賴關係。我知道有

dependencies{ 
    compile project(':shared') 
    } 

語法,但我希望依賴性是靈活的。如果項目在工作區中,請解決它。否則,從檔案中下載它。

如何實現這種行爲?

謝謝

回答

1

這應該是兩個單獨的問題。無論如何:

ad 1)所有已棄用的是動態屬性,即引入foo = "bar"的新屬性。相反,它現在是def foo = "bar",或者,如果該屬性需要從其他構建腳本ext.foo = "bar"訪問。 (如果屬性拼寫錯誤,此更改將允許Gradle 2.x失敗; Gradle 1.x至少會給出棄用警告。)

請注意,消費者端沒有任何更改,即屬性仍然可以訪問通過它的簡單名稱(例如println foo)。請注意,它應該而不是通過ext.foo訪問,即使這可以在某些情況下工作。

ad 2)目前這不是一流的功能,但可以通過一些努力來實現。 (關於概念驗證,請參閱https://github.com/pniederw/elastic-deps,關於更嚴重實施的早期版本,請參閱https://github.com/prezi/pride)。我期望這將成爲2.x時間框架中的一流功能。