1

F-Droid是适用于 Android 的免费软件应用商店。我们强制要求应用程序是 100% 的免费软件,因此它类似于 Debian for Android。由于大多数 Android 应用程序都使用 gradle,因此使用 gradle 技巧来自动化我们的执行是有意义的。该'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
          }
        }
      }
    }
  }
}
4

0 回答 0