将本地插件添加到 Gradle 项目

新手上路,请多包涵

我有一个可以按预期编译和工作的 Gradle 插件。我想与源代码一起分发一个使用 Gradle 插件的示例应用程序,这也让我可以轻松地测试对插件的更改。现在要执行此操作,我必须向 buildScript 块添加类路径依赖项。是否可以添加将与示例项目一起编译的依赖本地插件?我现在遇到的主要问题是在尝试同步导致失败的示例项目时插件不存在。

原文由 Bobbake4 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 471
1 个回答

如果编写集成测试是您的最终目标,我仍然建议使用 ProjectBuilder。您可以在 此处的第 39.5.4 节 中看到这方面的示例。 gradle 源代码中有更多真实世界的测试实现示例。 例如,请参见此处


话虽如此,我对您发布的字面问题感到好奇并尝试了一些事情。对我有用的是:

 buildscript{
    repositories{
        ...
    }

    dependencies{
        classpath files('relative/path/to/plugin.jar')
    }
}

apply plugin: fully.qualified.package.PluginClassName

请注意,类名未包含在 ' 引号 ' 中以使其成为字符串。

这不是很有用,因为此声明需要 plugin.jar 在构建使用插件的项目之前构建并可用 - 但此时,您还不如依赖外部 repo 依赖项。

第二个问题是插件项目的传递依赖不会自动添加到你的插件消费者项目中。

我无法获得像 classpath project(':plugin-project') 这样的项目依赖项来在 buildscript 中工作。


确保插件项目在构建插件消费者项目时始终构建和可用的一种(非常 hacky)方法是拥有一个“父”build.gradle,它始终在构建消费者项目之前首先构建插件。我 在这里上传了一个例子

原文由 RaGe 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题