如何添加类路径条目以便 buildSrc 插件可以在 gradle 中找到我的文件?

jha*_*g23 5 gradle

我有一个 gradle 项目,正在创建一个自定义插件来做一些额外的构建工作。插件的源文件存储在buildSrc/. 我有基本的框架工作,我可以通过运行gradle tasks.

我遇到的问题是我需要将项目目录添加到插件任务的类路径中。

我试过使用buildscript我的 main添加目录build.gradle

buildscript {
     repositories { mavenCentral() }
     dependencies { 
        classpath files('migrationScripts')
     }   
}
Run Code Online (Sandbox Code Playgroud)

但这似乎对插件看到的类路径没有任何影响。当我打印出类路径时,我得到以下信息:

/home/jharig/project/buildSrc/build/classes/main/
/home/jharig/project/buildSrc/build/resources/main/
Run Code Online (Sandbox Code Playgroud)

我怎样才能添加

/home/jharig/project/migrationScripts
Run Code Online (Sandbox Code Playgroud)

到我的插件任务执行时的类路径?

更新:我不想migrationScriptsbuildSrc/build.gradle.

Pet*_*ser 4

您需要创建buildSrc/build.gradle并声明/home/jharig/project/migrationScripts为常规compileruntime依赖项。migrationScripts请注意,如果属于与 相同的构建,则这将不起作用buildSrc,因为构建的所有项目实际上都依赖于buildSrc,并且您不能在两个方向上具有依赖关系。

  • 对于属于单个构建且仅由单个构建使用的插件来说,“buildSrc”是一个方便的解决方案。如果您想让(二进制)插件可供其他构建使用,则需要为该插件单独构建,并且需要将其发布到二进制存储库,以便其他构建可以在其“buildscript”部分中引用它。如果您能更具体地描述您想要实现的目标(以及原因),我也许可以提供进一步的帮助。 (2认同)