我是新手,并尝试将我们的构建环境ant升级为gradle。我有一个多项目构建配置。我想要做的是从eclipse读取.classpath文件并添加到gradle依赖项。下面的代码实现了这一点,并在项目下的gradle.build文件中正常工作,
def add(String kind, String dependency) {
project.dependencies
{dep->
if(kind.equals("lib"))
{
def jar = dependency.substring(dependency.lastIndexOf("/")+1)
jar = jar.substring(0,jar.indexOf("."))
dep.compile("jarlib:$jar:0")
}
else if(kind.equals("src"))
{
def project_name = dependency.substring(dependency.indexOf("/") + 1)
dep.compile(project(":$project_name"))
}
}
}
但我不想将此方法复制到每个子项目并将其移动到根项目gradle文件。在此之后,我在第dep.compile(project(":$project_name"))
行收到错误
没有方法签名:org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler_Decorated.compile() 适用于argum ent类型: (org.gradle.api.internal.project.DefaultProject_Decorated)值: [项目':MYPROJECT']
这是来电者的任务
task loadClasspath {
File classpathFile = new File(projectDir.getPath() + '/.classpath')
println "################ COMPILING PROJECT ################"
println "################" + project.name +"################"
println "###################################################"
if(!classpathFile.exists())
return
def classpath = (new XmlParser()).parse(classpathFile)
classpath.classpathentry.each{ module ->
println "Kind : " + module.@kind + ", path : " + module.@path
add(module.@kind,module.@path)
}
project.configurations.compileClasspath.each { file -> println file }
}
任何人都可以提供帮助吗?