首页 文章

在添加存储库并解析依赖关系之前运行任务

提问于
浏览
0

我正在使用gradle编译python绑定 . 有一个plugin by linkedin促进了这一点 .

它们还包括一个名为pivy-importer的项目,它将python依赖项转换为常 Spring 藤库 .

我已经创建了一个gradle插件,它包含了关键的导入器,因此它可以作为python任务运行 .

我的存储库声明如下:

repositories {
    pyGradlePyPi()
    ivy {
        name 'pypi-local'   //optional, but nice
        url "${project.buildDir.path}/pythonIvy"
        layout "pattern", {
            ivy "[organisation]/[module]/[revision]/[module]-[revision].ivy"
            artifact "[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]"
            m2compatible = true
        }
    }
}

但问题是,在插件执行之前正在加载存储库 .

python任务运行的第一个任务是 pinRequirements 所以我之前添加了我的cusom pythonImporter 任务,如下所示:

pinRequirements.dependsOn pythonImporter

但是,即使我这样做,控制台也会显示 pythonImporter 任务之前正在运行,但是一旦尝试组装依赖项,即使它们确实存在于文件系统中,也无法找到它们 .

但是,如果再次重新运行该任务,它会通过,因为第一次运行会将存储库添加到文件系统 .

TL;DR

我需要一种方法来运行任务,然后在使用项目配置的 repositories 加载的情况下查找依赖项 .

1 回答

  • 0

    我将任务执行移动到我的 buildSrc 子项目,并使 build 任务依赖于它的执行 . 这是因为 buildSrc 项目总是在其余项目之前进行评估,因此您可以在那里执行"before build"逻辑 .

相关问题