簡體   English   中英

Gradle中的自定義依賴關系管理插件

[英]Custom dependency management plugin in Gradle

如何編寫自定義gradle插件來處理自定義存儲庫中自定義模塊描述符中的依賴項? gradle文檔說明如下,但我找不到任何能告訴我如何做的事情。

即使您的項目使用自定義依賴關系管理系統或類似Eclipse .classpath文件作為依賴關系管理的主數據,也可以非常輕松地編寫Gradle插件以在Gradle中使用此數據。

我一直在為ATG項目維護一個Custom Ivy解析器 (從這個項目分叉),但Gradle最近不贊成使用1.8版本,我需要將實現移植到本機Gradle插件。

ATG的實現使用“模塊”(與Gradle項目不同),它具有用於模塊描述符的MANIFEST.MF文件。 這些文件定義了模塊所依賴的其他“模塊”,以及形成當前模塊的(直接)類路徑的路徑(jar或目錄)列表。

例如

ATG-Class-Path: lib/classes.jar lib/commons-beanutils-1.7.jar
ATG-Required: MyProj.core MyProj.integration.webservices DAF.Endeca.Assembler

模塊依賴性是可傳遞的,可以指代ATG產品安裝中的自定義模塊或模塊。 因此,我需要定義一個可以使用ATG產品安裝作為工件源的自定義存儲庫。

沒有Gradle,我需要以形式維護依賴關系

  1. ATG的MANIFEST.MF文件
  2. Eclipse .classpath文件
  3. Ant構建腳本的依賴關系
  4. SonarQube配置

由於我無法擺脫ATG MANIFEST.MF文件,我想編寫一個自定義插件來允許它們在Gradle構建中使用。 然后我可以使用Gradle作為我的構建系統,它也可以生成Eclipse .classpath和.project文件,並針對項目運行Sonar。

Gradle似乎有很多源代碼,過去幾天翻找它並沒有把我帶到任何地方。

如果有人可以指出我需要實現的接口列表(1)實現自定義存儲庫,(2)實現自定義依賴項解析器(使用自定義文件作為模塊描述符),這應該足以讓我開始。

上面提到的Eclipse .classpath用例可以通過解析該文件並將其轉換為Gradle文件依賴項來解決。 目前無法插入自定義存儲庫實現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM