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
}
}
}
}
}
}