渐变添加依赖项抛出方法dependencies.add



我的计划是写更少的样板代码,我计划做一个添加依赖项的方法,抛出它,这是我的方法

project.ext{
    forEachWithKNp1 = { String[] items, Closure op ->
        final int length = items.length / 2;
        for(int index = 0; index < length; index++){
            op(items[index], items[index + 1]);
        }
    }
    addSquareUpArtifacts = { String... names ->
        forEachWithKNp1(names, { name, version ->
            project.dependencies {
                getDependencies().add("compile", "com.squareup.$name:$name:$version")
            }
        })
    }
}

当我尝试同步项目时,错误正在发生Error:(32, 0) A problem occurred evaluating project ':my-project'.

我做错了什么?(我是groovy和gradle的新手,我试图在gradle文档中找到答案,并在Github中搜索,没有找到任何有用的东西)

我做了一些研究,所以我明白了哪里出了问题,在addSquareUpArtifacts方法中,我使用的变量project是根项目,而我应该使用指定项目来添加依赖项

这是的最终解决方案

project.ext{
    forEachWithKNp1 = { String[] items, Closure op ->
        final int length = items.length / 2;
        for(int index = 0; index < length; index++){
            op(items[index], items[index + 1]);
        }
    }
    addSquareUpArtifact = {String projectPath, String... names ->
        final Project target = project.project(projectPath)
        forEachWithKNp1(names, { name, version ->
            target.getDependencies().add('compile', "com.squareup.$name:$name:$version")
        })
    }
}

相关内容

最新更新