如何在库模块项目中使用自定义gradle插件

如何在库模块项目中使用自定义gradle插件,gradle,Gradle,我有一个自定义的gradle插件,已上传到jcenter,我可以在我的android项目中使用它,如: 根项目build.gradle: dependencies { classpath 'com.android.tools.build:gradle:2.0.0' classpath 'com.myproject:projectname:1.0.1' } apply plugin: 'com.android.application' apply plugin: 'com.myp

我有一个自定义的gradle插件,已上传到jcenter,我可以在我的android项目中使用它,如:

根项目build.gradle:

dependencies {
    classpath 'com.android.tools.build:gradle:2.0.0'
    classpath 'com.myproject:projectname:1.0.1'
}
apply plugin: 'com.android.application'
apply plugin: 'com.myproject.projectname'

myconfig {
  ......
}
应用程序的build.gradle:

dependencies {
    classpath 'com.android.tools.build:gradle:2.0.0'
    classpath 'com.myproject:projectname:1.0.1'
}
apply plugin: 'com.android.application'
apply plugin: 'com.myproject.projectname'

myconfig {
  ......
}
它很好用。但当我在android库模块中使用它时,它会显示错误消息“Gradle DSL method no found:'myconfig()'”

库模块的build.gradle

apply plugin: 'com.android.library'
apply plugin: 'com.myproject.projectname'

myconfig {
  ......
}

有人知道为什么吗?

将您的jar/依赖项放在一个文件夹中(假设为“libs”) 然后显示目录

repositories {
   flatDir {
       dirs 'libs'
   }
}
dependencies {
   compile name: 'jarFile'
}
或者类似于:

dependencies {
    compile files('libs/something_local.jar')
    compile 'package_name'
}

我找到了原因,在我的gradle插件中,我检查了如下项目:

if (project.getPlugins().hasPlugin(AppPlugin)) {....}

因此,当我在库模块中调用它时,它无法转到正确的分支。

我将plugin.jar复制到模块的libs文件夹中,并像您的方法一样配置build.gradle,它显示错误:error:(11,0)提供的字符串模块符号'com。myproject.projectname'无效。示例注释:“org.gradle:gradle核心:2.2”,“org.mockito:mockito核心:1.9.5:javadoc”。试试这个:
编译项目(':projectname')
编译文件('libs/jarname.jar')