gradle - 从自定义插件动态加载 Gradle 插件
问题描述
我正在开发一个 Gradle 插件(https://github.com/hkhc/jarbird),它根据不同的场景在代码中应用了一些其他插件。
我可以通过将插件组件作为implementation
依赖项放在我的插件项目中来做到这一点。然后使用project.apply()
带有插件 ID 或插件类对象的方法应用项目。
但是,这意味着当我不需要这些插件时,会不必要地下载插件组件。所以我正在寻找一种动态解析插件的方法。
我试图通过compileOnly
在我的自定义插件的构建脚本中添加依赖项来做到这一点,并将其加载到project.apply()
我的插件中。
val artifactoryConfiguration = project.buildscript.configurations.detachedConfiguration(
DefaultExternalModuleDependency(
"org.jfrog.buildinfo",
"build-info-extractor-gradle",
"4.23.4"
)
)
artifactoryConfiguration.resolve()
当我故意弄错坐标时,我得到了ModuleVersionNotFoundException
. 所以我确信决心确实发生了。但是,project.apply(ArtifactoryPlugin::class.java)
在执行插件时仍然会导致 ClassNotFoundException。Gradle 似乎无法从随机分离的配置中加载插件。
我被困在这一点上,不知道如何让 Gradle 加载我在自定义插件中动态解析的插件。
我是否弄错了方向,或者我错过了使这种方法有效的东西?
解决方案
推荐阅读
- flutter - 如何更新 AlertDialog 小部件中的 var?
- javascript - Node js获取正在上传的文件的名称
- kubernetes - 当 pod 卡在挂起状态时,我们可以在 statefulset 中为 pod 添加重启时间吗?
- c++ - 如何修复“clang: error: linker command failed with exit code 1 (use -v to see invocation)”错误?
- java - Spring Boot Embedded Keycloak 服务器抛出 NoSuchMethodError
- ssl - 无法使用 OpenSSL 加载私钥
- docker - 如何使用 Github 操作在不同文件夹中执行操作
- python - 极坐标/径向图表上的刻度标签填充和刻度标签位置 - matplotlib
- python - 我需要对views.py 中的函数执行什么操作?
- postgresql - 在我的 MAC 上登录 POSTGRES 时出现密码错误