Gradle是DSL。我想知道是否有任何方法將'build.gradle'腳本解析爲其他數據形式?例如,對於JSON,我可以使用代碼對其進行修改。如何將build.gradle文件解析爲其他數據格式
而且,如何反向解析? (JSON返回到build.gradle)。
對不起,我最近不得不做一些動態的'build.gradle'修改工作與某種腳本,其中包括修改'build.gradle'腳本中的一些現有任務。
任何幫助都會很好。
Gradle是DSL。我想知道是否有任何方法將'build.gradle'腳本解析爲其他數據形式?例如,對於JSON,我可以使用代碼對其進行修改。如何將build.gradle文件解析爲其他數據格式
而且,如何反向解析? (JSON返回到build.gradle)。
對不起,我最近不得不做一些動態的'build.gradle'修改工作與某種腳本,其中包括修改'build.gradle'腳本中的一些現有任務。
任何幫助都會很好。
由於Gradle只是Groovy代碼,所以您必須編寫一個Groovy解釋器才能解析所有Gradle腳本。
從JSON到Gradle不應該是一個問題,因爲JSON不包含邏輯。
您是否嘗試過使用afterEvaluate(...)
修改任務? https://docs.gradle.org/current/dsl/org.gradle.api.Project.html#org.gradle.api.Project:afterEvaluate(org.gradle.api.Action)
目前沒有可靠的方法來做到這一點。對於簡單的構建腳本,這可能可以由您自己來實現,但反映描述項目構建模型的DSL的build.gradle文件相當深入和複雜,包括項目模型,不同的任務+不同的任務類型,構建偵聽器和其他類型的鉤子。
隨着Gradle團隊正在開發的新配置模型,我認爲橋接到模型的不同演示文稿將更容易(詳情請參見https://docs.gradle.org/current/userguide/new_model.html)。
你能解釋你試圖解決的實際問題嗎?
一個可能的解決方案可能是build.gradle
讀取json文件並根據json值配置project model。然後你可以用其他進程生成json文件。
我最終修改了sed的build.gradle文件。 – user1425353
我最終修改了sed的build.gradle文件。 – user1425353