Gradle rootproject方法调用失败

时间:2016-03-23 08:00:52

标签: gradle

我是新手,并尝试将我们的构建环境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 }
    }

任何人都可以提供帮助吗?

0 个答案:

没有答案