在构建脚本中加载其他插件之前使用gradle插件
我有自己的gradle插件,其中包含一个包含其他插件版本的文件。目前,每当我做一个新的项目,我必须复制它们,因为我不能使用插件的版本 是否有任何方法可以加载我的插件,应用它,然后加载其他插件?目前,当我制作名为在构建脚本中加载其他插件之前使用gradle插件,gradle,gradle-plugin,Gradle,Gradle Plugin,我有自己的gradle插件,其中包含一个包含其他插件版本的文件。目前,每当我做一个新的项目,我必须复制它们,因为我不能使用插件的版本 是否有任何方法可以加载我的插件,应用它,然后加载其他插件?目前,当我制作名为buildSrc的插件模型时,我只能自己为项目做这件事,因为它会自动将它添加到其他模块中 我想要实现的示例: buildscript { repositories { google() jcenter() maven { url 'h
buildSrc
的插件模型时,我只能自己为项目做这件事,因为它会自动将它添加到其他模块中
我想要实现的示例:
buildscript {
repositories {
google()
jcenter()
maven { url 'https://maven.fabric.io/public' }
maven { url "https://plugins.gradle.org/m2/" }
}
dependencies {
classpath "ca.allanwang:kau:$kau_version"
}
// Apply plugin before other dependencies so I can use it
apply plugin: "ca.allanwang.kau"
dependencies {
classpath kauPlugin.android
classpath kauPlugin.kotlin
classpath kauPlugin.androidMaven
classpath kauPlugin.playPublisher
classpath kauPlugin.dexCount
classpath kauPlugin.gitVersion
classpath kauPlugin.spotless
}
wrapper.setDistributionType(Wrapper.DistributionType.ALL)
}
以及在我的主项目中将插件作为一个模块时的情况:
buildscript {
repositories {
google()
jcenter()
maven { url 'https://maven.fabric.io/public' }
maven { url "https://plugins.gradle.org/m2/" }
}
apply plugin: "ca.allanwang.kau"
dependencies {
classpath kauPlugin.android
classpath kauPlugin.kotlin
classpath kauPlugin.androidMaven
classpath kauPlugin.playPublisher
classpath kauPlugin.dexCount
classpath kauPlugin.gitVersion
classpath kauPlugin.spotless
}
wrapper.setDistributionType(Wrapper.DistributionType.ALL)
}
你应该能够通过组合不同的东西来实现你想要的:
- 利用is
ExtensionAware
- 在相同的设置文件中定义插件类路径
- 在项目中应用插件,而不指定版本-有关不通过
pluginManagement定义版本的更简单版本,请参阅
示例:使用
buildSrc
中的插件,但它可以作为二进制插件发布和使用,没有任何问题。谢谢!这看起来正是我需要的。我当前的插件是,本质上是向项目插件添加扩展。其中一些是功能,尽管它们不会因项目而改变。它们都可以添加到插件设置中吗?如果没有,是否可以有一个包含多个实现类的插件?Settings
是ExtensionAware
就像Project
一样。现在,您可能需要在设置和项目之间拆分扩展,具体取决于它们在构建中的使用情况。如果解决了您的问题,请接受答案。我现在接受答案。我仍然要测试它,看看它是否能与项目和设置一起工作,但你已经告诉我,我可以在我以前不知道的设置中应用插件。