我有一个可以按预期编译和工作的 Gradle 插件。我想与源代码一起分发一个使用 Gradle 插件的示例应用程序,这也让我可以轻松地测试对插件的更改。现在要执行此操作,我必须向 buildScript
块添加类路径依赖项。是否可以添加将与示例项目一起编译的依赖本地插件?我现在遇到的主要问题是在尝试同步导致失败的示例项目时插件不存在。
原文由 Bobbake4 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有一个可以按预期编译和工作的 Gradle 插件。我想与源代码一起分发一个使用 Gradle 插件的示例应用程序,这也让我可以轻松地测试对插件的更改。现在要执行此操作,我必须向 buildScript
块添加类路径依赖项。是否可以添加将与示例项目一起编译的依赖本地插件?我现在遇到的主要问题是在尝试同步导致失败的示例项目时插件不存在。
原文由 Bobbake4 发布,翻译遵循 CC BY-SA 4.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
如果编写集成测试是您的最终目标,我仍然建议使用 ProjectBuilder。您可以在 此处的第 39.5.4 节 中看到这方面的示例。 gradle 源代码中有更多真实世界的测试实现示例。 例如,请参见此处。
话虽如此,我对您发布的字面问题感到好奇并尝试了一些事情。对我有用的是:
请注意,类名未包含在
'
引号'
中以使其成为字符串。这不是很有用,因为此声明需要
plugin.jar
在构建使用插件的项目之前构建并可用 - 但此时,您还不如依赖外部 repo 依赖项。第二个问题是插件项目的传递依赖不会自动添加到你的插件消费者项目中。
我无法获得像
classpath project(':plugin-project')
这样的项目依赖项来在 buildscript 中工作。确保插件项目在构建插件消费者项目时始终构建和可用的一种(非常 hacky)方法是拥有一个“父”build.gradle,它始终在构建消费者项目之前首先构建插件。我 在这里上传了一个例子。