使用init.gradle将插件插入到Android gradle构建中

时间:2017-05-29 11:39:09

标签: android android-gradle build.gradle gradle-plugin fdroid

F-Droid是适用于Android的免费软件应用商店。我们强制要求应用程序是100%免费软件,所以它就像Debian for Android。由于大多数Android应用都使用gradle,因此使用gradle技巧automate our enforcement是有意义的。 'com.jaredsburrows.license'插件是我们想要自动注入每个构建的一种东西。 init.gradle 应该能够做到这一点,但我无法弄清楚如何将插件插入到Android插件中。这是我得到的地方:

apply plugin: FDroidLicenseCheck

class FDroidLicenseCheck implements Plugin<Gradle> {
  def supportedPlugins = [
    'org.gradle.api.plugins.JavaPlugin',
    'com.android.build.gradle.AppPlugin'
  ]

  void apply(Gradle gradle) {
    println('applying license check')
    def added = false

    gradle.allprojects { project ->
      project.with { 
        if (parent == null) {
          buildscript { 
            repositories {
              jcenter()
            }
            dependencies {
              classpath "com.jaredsburrows:gradle-license-plugin:0.5.0"
            }
          }
        }

        plugins.whenPluginAdded { plugin ->
          println('Checking ' + plugin.class.name)
          if (!added && supportedPlugins.contains(plugin.class.name)) {
            println('Adding to ' + plugin.class.name)
            rootProject.apply plugin: 'com.jaredsburrows.license'
            added = true
          }
        }
      }
    }
  }
}

0 个答案:

没有答案