浏览代码

Merge pull request #8 from csmith/replace-dependencies

Add a script to magically change dependencies.
pull/9/head
Greg Holmes 9 年前
父节点
当前提交
73dab2a0c5
共有 2 个文件被更改,包括 28 次插入0 次删除
  1. 2
    0
      build.gradle
  2. 26
    0
      local-dependency-change.gradle

+ 2
- 0
build.gradle 查看文件

@@ -2,6 +2,8 @@ import java.nio.file.Files;
2 2
 import java.nio.file.Paths;
3 3
 import static java.nio.file.StandardCopyOption.REPLACE_EXISTING;
4 4
 
5
+apply from: 'local-dependency-change.gradle'
6
+
5 7
 task createWrapper(type: Wrapper) {
6 8
     description 'Downloads and installs an up-to-date wrapper for gradle.'
7 9
     gradleVersion = '2.1'

+ 26
- 0
local-dependency-change.gradle 查看文件

@@ -0,0 +1,26 @@
1
+gradle.projectsEvaluated {
2
+    def projectMap = [:]
3
+    allprojects.each { p -> projectMap[p.name] = p }
4
+
5
+    allprojects.each { p ->
6
+        def replace = []
7
+
8
+        p.configurations.each { conf ->
9
+            conf.dependencies.each { dep ->
10
+                if (dep.group == 'com.dmdirc' && dep.version == '+' && projectMap[dep.name] != null) {
11
+                    replace += [conf: conf.name, dep: dep]
12
+                }
13
+            }
14
+        }
15
+
16
+        replace.each { rep ->
17
+            logger.info("Replacing ${p.name}'s dependency on $rep.dep.name with project reference")
18
+            p.configurations.all*.exclude(group: 'com.dmdirc', module: rep.dep.name)
19
+            rep.dep.properties.excludeRules.each { ex ->
20
+                p.configurations.all*.exclude(group: ex.group, module: ex.module)
21
+            }
22
+            p.dependencies.add(rep.conf, projectMap[rep.dep.name])
23
+        }
24
+    }
25
+}
26
+

正在加载...
取消
保存