我們用我們的cusrom插件,並以這種方式定義的腳本(這是一個近似的僞代碼):搖籃 - 在不同的DSL的共同部分(其他)git倉庫
//It is common part for every script (1)
environments {
"env1" {
server mySettings("host1", "port1", "etc")
}
"env2" {
server mySettings("host2", "port2", "etc")
}
... //another common scopes
}
和
def defaultSettings(def envHost, def envPort = "15555" ...) {
return {
// Specific settings for the current script (package names, versions etc)
}
}
因此,在我所有的腳本中(這些腳本是單獨的項目,並且位於單獨的git存儲庫中),重複公用部分(1)。
是否有任何正確的方法來將公共部分定義爲特定項目(這不能是插件的一部分 - 公共部分也會週期性變化)?
我想在創建新項目時參考這一部分,並只描述項目特定的設置。
它看起來像gradle multi-project構建,但通用部分應該在其他git repository/Nexus中。
重要說明 - 通用部分也可以在Nexus中,有一個版本(有POM描述符)。
感謝您的回覆。但也許我有一個稍微不同的問題 - 基本的通用功能是一個腳本也會改變(並且可以經常)。我想將所有這些更改應用到我的所有腳本中。例如,作爲Java項目中的JAR依賴項。 –
將腳本封裝到插件jar中,並讓插件在執行之前提取腳本(通過'apply from:')。您可以使用動態版本(或「-SNAPSHOT」版本),以便插件的更新將自動流向項目 –
Tnanks,我明白您的意思,我會在幾天內嘗試此解決方案 –