當詹金斯管道首次創建,Groovy中被選爲基礎。 Jenkins長期以來一直使用嵌入式Groovy引擎來爲管理員和用戶提供高級腳本功能。此外,Jenkins Pipeline的實現者發現Groovy是建立現在稱爲「腳本管道」DSL的堅實基礎。
由於它是一個全功能的編程環境,腳本管道爲Jenkins用戶提供了巨大的靈活性和可擴展性。對於給定團隊的所有成員而言,Groovy學習曲線通常並不需要,因此創建了聲明式管道以爲創建Jenkins管道提供更簡單和更有見地的語法。
這兩者在底下都是基本相同的Pipeline子系統。它們都是「管道作爲代碼」的持久實現。他們都可以使用內置於Pipeline的步驟或插件提供的步驟。兩者都能夠利用共享庫
但是,它們的區別在於語法和靈活性。聲明性限制了對用戶可用的更嚴格和預先定義的結構,使其成爲更簡單的連續交付管道的理想選擇。腳本化提供了極少的限制,只要Groovy自己定義了結構和語法的唯一限制,而不是任何Pipeline特定的系統,使其成爲高級用戶和具有更復雜需求的用戶的理想選擇。顧名思義,聲明式管道就是鼓勵聲明式編程模型。腳本管道遵循更強制性的編程模型。
從https://jenkins.io/doc/book/pipeline/syntax/
我沒有看到有關腳本的任何內容會被棄用,並且考慮到聲明和腳本之間的功能差異,這會令人擔憂。 –