package Ġcom . version . dependent s . ext Ċ Ċ import Ġorg . gradle . api . Action Ċ import Ġorg . gradle . api . artifacts . Dependency Constraint Ċ import Ġorg . gradle . api . artifacts . dsl . Dependency Constraint Handler Ċ import Ġorg . gradle . api . artifacts . dsl . Dependency Handler Ċ Ċ /** Ċ Ġ* Ġ ä¾Ŀèµĸ çļĦ åŁºç¡Ģ æĭ ĵ å±ķ æĸ¹æ³ķ Ċ Ġ* Ġ@ author Ġy u P Fe G Ċ Ġ* Ġ@ date Ġ 2 0 2 1 / 0 2 / 0 4 Ċ Ġ*/ Ċ Ċ internal Ġconst Ġval Ġapi Ġ= Ġ" api " Ċ internal Ġconst Ġval Ġimplementation Ġ= Ġ" implementation " Ċ internal Ġconst Ġval Ġtest Implementation Ġ= Ġ" test Implementation " Ċ internal Ġconst Ġval Ġandroid Test Implementation Ġ= Ġ" android Test Implementation " Ċ internal Ġconst Ġval Ġk apt Ġ= Ġ" k apt " Ċ Ċ // ---------- Ġimplementation çļĦ ä¾Ŀèµĸ æĸ¹å¼ı ------------- Ċ /** Ċ Ġ* Ġ[ Dependency Handler ] çļĦ æĭ ĵ å±ķ åĩ½æķ° ï¼Į æ·»åĬł [ implementation ] æĸ¹å¼ı çļĦ ä¾Ŀèµĸ æ¨¡åĿĹ Ċ Ġ* Ġ* Ġ[ implementation ] Ġ ä¾Ŀèµĸ ä¼ļ åĩºçİ° åľ¨ ç¼ĸè¯ĳ äº§ çī© ä¸Ń . Ġ ä½Ĩæĺ¯ æľĢç»Ī äº§ çī© ä¸ŃçļĦ è¯¥ ä¾Ŀèµĸ ä¸įä¼ļ åĲĳ å¤ĸ æļ´ éľ ² æİ¥åı£ . Ċ Ġ* Ġ è¿Ļç§į æĸ¹å¼ı åı¯ä»¥ æľīæķĪ åĩı å°ĳ Ġre compile ĠæĹ¶ æīĢ éľĢè¦ģ ç¼ĸè¯ĳ çļĦ æ¨¡åĿĹ , ĠæıĲ é«ĺ ç¼ĸè¯ĳ éĢŁåº¦ . Ċ Ġ* Ġ@ param Ġdependency Not ation Ġ ä¾Ŀèµĸ çļĦ æ¨¡åĿĹ æııè¿° . Ċ Ġ* Ġ 1 . Ġ ä¾Ŀèµĸ module Ġ: Ġproject (": xxx ") ï¼Į Ċ Ġ* Ġ 2 . Ġ ä¾Ŀèµĸ æĸĩä»¶ \ æĸĩä»¶ æłĳ Ġ: Ġfile Tree ( map Of (" dir " Ġto Ġ" libs ", Ġ" include " Ġto ĠlistOf (" *. jar "))) Ċ Ġ* Ġ 3 . Ġ è¿ľç¨ĭ ä¾Ŀèµĸ æ¨¡åĿĹ Ġ: Ġmodule åĲįç§° Ġ- ĠâĢ Ŀ android x . appcompat : appcompat : 1 . 2 . 0 âĢľ Ċ Ġ* Ġ*/ Ċ internal Ġfun ĠDependency Handler . implementation ( dependency Name Ġ: ĠAny ) Ġ= ĊĠĠĠ Ġadd ( implementation , dependency Name ) Ċ Ċ /** Ċ Ġ* Ġ[ Dependency Constraint Handler ] çļĦ æĭ ĵ å±ķ åĩ½æķ° ï¼Į æ·»åĬł [ implementation ] æĸ¹å¼ı ä¾Ŀèµĸ çļĦ çº¦ æĿŁ Ċ Ġ* Ġ* Ġ çº¦ æĿŁ é»ĺè®¤ ä½¿çĶ¨ required ï¼Į ä»ħ éĻĲåĪ¶ è¯¥ ä¾Ŀèµĸ çļĦ æľĢ ä½İ çīĪæľ¬ Ċ Ġ* Ġ* Ġ[ implementation ] Ġ ä¾Ŀèµĸ ä¼ļ åĩºçİ° åľ¨ ç¼ĸè¯ĳ äº§ çī© ä¸Ń . Ġ ä½Ĩæĺ¯ æľĢç»Ī äº§ çī© ä¸ŃçļĦ è¯¥ ä¾Ŀèµĸ ä¸įä¼ļ åĲĳ å¤ĸ æļ´ éľ ² æİ¥åı£ . Ċ Ġ* Ġ è¿Ļç§į æĸ¹å¼ı åı¯ä»¥ æľīæķĪ åĩı å°ĳ Ġre compile ĠæĹ¶ æīĢ éľĢè¦ģ ç¼ĸè¯ĳ çļĦ æ¨¡åĿĹ , ĠæıĲ é«ĺ ç¼ĸè¯ĳ éĢŁåº¦ . Ċ Ġ* Ġ@ param Ġdependency Name Ġ ä¾Ŀèµĸ çļĦ æ¨¡åĿĹ æııè¿° . Ċ Ġ* Ġ 1 . Ġ ä¾Ŀèµĸ module Ġ: Ġproject (": xxx ") ï¼Į Ċ Ġ* Ġ 2 . Ġ ä¾Ŀèµĸ æĸĩä»¶ \ æĸĩä»¶ æłĳ Ġ: Ġfile Tree ( map Of (" dir " Ġto Ġ" libs ", Ġ" include " Ġto ĠlistOf (" *. jar "))) Ċ Ġ* Ġ 3 . Ġ è¿ľç¨ĭ ä¾Ŀèµĸ æ¨¡åĿĹ Ġ: Ġmodule åĲįç§° Ġ- ĠâĢ Ŀ android x . appcompat : appcompat : 1 . 2 . 0 âĢľ Ċ Ġ*/ Ċ internal Ġfun ĠDependency Constraint Handler . implementation ( dependency Name Ġ: ĠAny ) Ġ= ĊĠĠĠ Ġadd ( implementation , dependency Name ) Ċ Ċ /** Ċ Ġ* Ġ[ Dependency Constraint Handler ] çļĦ æĭ ĵ å±ķ åĩ½æķ° ï¼Į æ·»åĬł [ implementation ] æĸ¹å¼ı çļĦ ä¾Ŀèµĸ çº¦ æĿŁ Ċ Ġ* Ġ* Ġ çº¦ æĿŁ é»ĺè®¤ ä½¿çĶ¨ required ï¼Į ä»ħ éĻĲåĪ¶ è¯¥ ä¾Ŀèµĸ çļĦ æľĢ ä½İ çīĪæľ¬ Ċ Ġ* Ġ* Ġ[ implementation ] Ġ ä¾Ŀèµĸ ä¼ļ åĩºçİ° åľ¨ ç¼ĸè¯ĳ äº§ çī© ä¸Ń . Ġ ä½Ĩæĺ¯ æľĢç»Ī äº§ çī© ä¸ŃçļĦ è¯¥ ä¾Ŀèµĸ ä¸įä¼ļ åĲĳ å¤ĸ æļ´ éľ ² æİ¥åı£ . Ċ Ġ* Ġ è¿Ļç§į æĸ¹å¼ı åı¯ä»¥ æľīæķĪ åĩı å°ĳ Ġre compile ĠæĹ¶ æīĢ éľĢè¦ģ ç¼ĸè¯ĳ çļĦ æ¨¡åĿĹ , ĠæıĲ é«ĺ ç¼ĸè¯ĳ éĢŁåº¦ . Ċ Ġ* Ġ@ param Ġdependency Name Ġ ä¾Ŀèµĸ çļĦ æ¨¡åĿĹ æııè¿° . Ċ Ġ* Ġ 1 . Ġ ä¾Ŀèµĸ module Ġ: Ġproject (": xxx ") ï¼Į Ċ Ġ* Ġ 2 . Ġ ä¾Ŀèµĸ æĸĩä»¶ \ æĸĩä»¶ æłĳ Ġ: Ġfile Tree ( map Of (" dir " Ġto Ġ" libs ", Ġ" include " Ġto ĠlistOf (" *. jar "))) Ċ Ġ* Ġ 3 . Ġ è¿ľç¨ĭ ä¾Ŀèµĸ æ¨¡åĿĹ Ġ: Ġmodule åĲįç§° Ġ- ĠâĢ Ŀ android x . appcompat : appcompat : 1 . 2 . 0 âĢľ Ċ Ġ* Ġ@ param Ġconstraint Ġ çº¦ æĿŁ æĿ¡ä»¶ çļĦ éĹŃ åĮħ [ Dependency Constraint ] Ċ Ġ*/ Ċ internal Ġfun ĠDependency Constraint Handler . implementation ( dependency Name : ĠAny , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconstraint Ġ: ĠAction < Dependency Constraint >) Ġ= ĊĠĠĠ Ġadd ( implementation , dependency Name , constraint ) Ċ Ċ // ------------------- api Ġ ä¾Ŀèµĸ æĸ¹å¼ı ---------------------- Ċ Ċ /** Ċ Ġ* Ġ[ Dependency Handler ] çļĦ æĭ ĵ å±ķ åĩ½æķ° ï¼Į æ·»åĬł [ api ] æĸ¹å¼ı çļĦ ä¾Ŀèµĸ æ¨¡åĿĹ Ċ Ġ* Ġ* Ġ[ api ] Ġ ä¾Ŀèµĸ ä¼ļ åĩºçİ° åľ¨ ç¼ĸè¯ĳ äº§ çī© ä¸Ń . Ġ ä½Ĩæĺ¯ æľĢç»Ī äº§ çī© ä¸ŃçļĦ è¯¥ ä¾Ŀèµĸ ä¼ļ åĲĳ å¤ĸ æļ´ éľ ² æİ¥åı£ . Ċ Ġ* Ġ@ param Ġdependency Not ation Ġ ä¾Ŀèµĸ çļĦ æ¨¡åĿĹ æııè¿° . Ċ Ġ* Ġ 1 . Ġ ä¾Ŀèµĸ module Ġ: Ġproject (": xxx ") ï¼Į Ċ Ġ* Ġ 2 . Ġ ä¾Ŀèµĸ æĸĩä»¶ \ æĸĩä»¶ æłĳ Ġ: Ġfile (" xxx ") Ġ\ Ġfile Tree ( map Of (" dir " Ġto Ġ" libs ", Ġ" include " Ġto ĠlistOf (" *. jar "))) Ċ Ġ* Ġ 3 . Ġ è¿ľç¨ĭ ä¾Ŀèµĸ æ¨¡åĿĹ Ġ: Ġmodule åĲįç§° Ġ- ĠâĢ Ŀ android x . appcompat : appcompat : 1 . 2 . 0 âĢľ Ċ Ġ* Ġ*/ Ċ internal Ġfun ĠDependency Handler . api ( dependency Name Ġ: ĠAny ) Ġ= Ġadd ( api , dependency Name ) Ċ Ċ /** Ċ Ġ* Ġ[ Dependency Constraint Handler ] çļĦ æĭ ĵ å±ķ åĩ½æķ° ï¼Į æ·»åĬł [ api ] æĸ¹å¼ı çļĦ ä¾Ŀèµĸ æ¨¡åĿĹ Ċ Ġ* Ġ* Ġ[ api ] Ġ ä¾Ŀèµĸ ä¼ļ åĩºçİ° åľ¨ ç¼ĸè¯ĳ äº§ çī© ä¸Ń . Ġ ä½Ĩæĺ¯ æľĢç»Ī äº§ çī© ä¸ŃçļĦ è¯¥ ä¾Ŀèµĸ ä¼ļ åĲĳ å¤ĸ æļ´ éľ ² æİ¥åı£ . Ċ Ġ* Ġ@ param Ġdependency Not ation Ġ ä¾Ŀèµĸ çļĦ æ¨¡åĿĹ æııè¿° . Ċ Ġ* Ġ 1 . Ġ ä¾Ŀèµĸ module Ġ: Ġproject (": xxx ") ï¼Į Ċ Ġ* Ġ 2 . Ġ ä¾Ŀèµĸ æĸĩä»¶ \ æĸĩä»¶ æłĳ Ġ: Ġfile (" xxx ") Ġ\ Ġfile Tree ( map Of (" dir " Ġto Ġ" libs ", Ġ" include " Ġto ĠlistOf (" *. jar "))) Ċ Ġ* Ġ 3 . Ġ è¿ľç¨ĭ ä¾Ŀèµĸ æ¨¡åĿĹ Ġ: Ġmodule åĲįç§° Ġ- ĠâĢ Ŀ android x . appcompat : appcompat : 1 . 2 . 0 âĢľ Ċ Ġ* Ġ*/ Ċ internal Ġfun ĠDependency Constraint Handler . api ( dependency Name : ĠAny ) Ġ= Ġadd ( api , dependency Name ) Ċ /** Ċ Ġ* Ġ[ Dependency Constraint Handler ] çļĦ æĭ ĵ å±ķ æĸ¹æ³ķ ï¼Į æ·»åĬł [ api ] æĸ¹å¼ı çļĦ ä¾Ŀèµĸ çº¦ æĿŁ Ċ Ġ* Ġ* Ġ[ api ] Ġ ä¾Ŀèµĸ ä¼ļ åĩºçİ° åľ¨ ç¼ĸè¯ĳ äº§ çī© ä¸Ń . Ġ ä½Ĩæĺ¯ æľĢç»Ī äº§ çī© ä¸ŃçļĦ è¯¥ ä¾Ŀèµĸ ä¼ļ åĲĳ å¤ĸ æļ´ éľ ² æİ¥åı£ . Ċ Ġ* Ġ@ param Ġdependency Not ation Ġ ä¾Ŀèµĸ çļĦ æ¨¡åĿĹ æııè¿° . Ċ Ġ* Ġ 1 . Ġ ä¾Ŀèµĸ module Ġ: Ġproject (": xxx ") ï¼Į Ċ Ġ* Ġ 2 . Ġ ä¾Ŀèµĸ æĸĩä»¶ \ æĸĩä»¶ æłĳ Ġ: Ġfile (" xxx ") Ġ\ Ġfile Tree ( map Of (" dir " Ġto Ġ" libs ", Ġ" include " Ġto ĠlistOf (" *. jar "))) Ċ Ġ* Ġ 3 . Ġ è¿ľç¨ĭ ä¾Ŀèµĸ æ¨¡åĿĹ Ġ: Ġmodule åĲįç§° Ġ- ĠâĢ Ŀ android x . appcompat : appcompat : 1 . 2 . 0 âĢľ Ċ Ġ* Ġ@ param Ġconstraint Ġ çº¦ æĿŁ æĿ¡ä»¶ çļĦ éĹŃ åĮħ [ Dependency Constraint ] Ċ Ġ* Ġ*/ Ċ internal Ġfun ĠDependency Constraint Handler . api ( dependency Name : ĠAny , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconstraint Ġ: ĠAction < Dependency Constraint >) Ġ= ĊĠĠĠ Ġadd ( api , dependency Name , constraint ) Ċ Ċ // -------------- test Ġ ä¾Ŀèµĸ æĸ¹å¼ı ----------------- Ċ Ċ internal Ġfun ĠDependency Handler . test Implementation ( dependency Name Ġ: ĠAny ) Ġ= ĊĠĠĠ Ġadd ( test Implementation , dependency Name ) Ċ Ċ internal Ġfun ĠDependency Handler . android Test Implementation ( dependency Name Ġ: ĠAny ) Ġ= ĊĠĠĠ Ġadd ( android Test Implementation , dependency Name ) Ċ Ċ internal Ġfun ĠDependency Handler . k apt ( dependency Name Ġ: ĠAny ) Ġ= Ġadd ( k apt , dependency Name )