我正在使用gradle编译python绑定。 有一个plugin by linkedin可以促进这一点。
它们还包括一个名为pivy-importer的项目,它将python依赖项转换为常春藤存储库。
我已经创建了一个gradle插件,它包含了joby-importer,因此它可以作为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
加载项目的情况下查找依赖项。
答案 0 :(得分:0)
我将任务执行移至我的buildSrc
子项目,并使build
任务依赖于其执行。
这是有效的,因为buildSrc
项目总是在其他项目之前进行评估,因此您可以在那里“构建”逻辑之前进行评估。