gpt4 book ai didi

java - 在同一项目中本地应用自定义 gradle 插件

转载 作者:行者123 更新时间:2023-12-04 20:13:17 26 4
gpt4 key购买 nike

我写了一个我只想在我自己的项目中使用的 gradle 插件。
这是一个简化的文件结构:

/root project
|
+ build.gradle
+ settings.gradle
+ build/
+ some module/
|
+ build.gradle
+ src/
+ build/
+ plugin/
|
+ build.gradle
+ src/
+ build/

我通过引用 jar 文件将插件添加到模块
// From '/some module/build.gradle'

buildscript {
dependencies {
classpath files('./plugin/build/libs/payload-plugin-0.0.1-SNAPSHOT.jar')
}
}

apply plugin: 'my-custom-plugin'

起初它工作正常,但有一个问题。如果您清理项目并尝试再次构建它,它会失败,因为 './plugin/build/libs/payload-plugin-0.0.1-SNAPSHOT.jar'不再存在,并且它不会尝试重建插件模块,因为这被视为配置错误。

我尝试仅使用 gradlew :somemodule:plugin:build 构建插件但它首先检查 `:somemodule' 的构建脚本,所以它不起作用。

也试过 classpath project(':somemodule:plugin')而不是 jar 引用,但它说找不到插件。

最佳答案

将 gradle 插件的代码与插件应该帮助构建的项目代码混合可能是一个坏主意。

您应该查看 organizing your build logic 上的 gradle 文档,特别是我可能会先将您的插件源代码粘贴在 buildSrc directory 中。

如果您按照上面的文档将插件源放在名为 buildSrc 的目录中,它将自动编译并包含在您的构建类路径中。清理项目时也不会删除它。您真正需要的只是 apply plugin: x 语句。

需要注意的是,尽管 buildSrc 很方便,但它仍然存在于插件的开发阶段。如果您打算在更多地方更频繁地使用该插件,或者以其他方式共享它,那么使用该插件实际构建一个 jar 可能会很好。

关于java - 在同一项目中本地应用自定义 gradle 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50494708/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com