首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在同一项目中本地应用自定义gradle插件

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

Stack Overflow用户
提问于 2018-05-24 02:00:23
回答 2查看 1.8K关注 0票数 5

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

代码语言:javascript
代码运行次数:0
运行
复制
/root project
  |
  + build.gradle
  + settings.gradle
  + build/
  + some module/
      |
      + build.gradle
      + src/
      + build/
      + plugin/
         |
         + build.gradle
         + src/
         + build/

我通过引用jar文件将插件添加到模块中

代码语言:javascript
代码运行次数:0
运行
复制
// 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引用,但它显示找不到插件。

EN

回答 2

Stack Overflow用户

发布于 2018-05-24 04:44:22

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

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

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

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

票数 3
EN

Stack Overflow用户

发布于 2021-01-12 08:50:27

这是一个老问题,但对于新访问者来说:你可以在构建代码的同时构建插件代码。甚至可以有一个构建所有插件的父项目。请查看this answer

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50494708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档