gpt4 book ai didi

python - 使用 SBT 管理同时包含 Scala 和 Python 的项目

转载 作者:太空狗 更新时间:2023-10-29 21:05:37 26 4
gpt4 key购买 nike

在当前项目中,我构建了用于与特定数据源交互的 Python 代码;现在,我正在构建一个 Scala 版本。

我重新安排了一些事情,以便所有 Python 代码都位于我的 Scala 代码的 SBT 项目中的 src/main/python 中,但这让我开始思考:有什么好的方法可以整合两者之间的项目管理?要设置 SBT 以便我可以运行我的 Python distutils 安装/sdist 生成或 sphinx 文档生成作为 SBT 任务?

或者,更一般地说:是否存在通过 SBT 运行任意系统任务的标准方法?

最佳答案

您可以创建一个压缩源文件的 python 任务。这个例子依赖于组装任务:

  lazy val pythonAssembly = TaskKey[Unit]("pythonAssembly", "Zips all files in src/main/python")

lazy val pythonAssemblyTask = pythonAssembly := {
val baseDir = sourceDirectory.value
val targetDir = assembly.value.getParentFile.getParent
val target = new File(targetDir + s"/python/rfu-api-client-python-${Commons.appVersion}.zip")
val pythonBaseDir = new File(baseDir + "/main/python")
val pythonFiles = Path.allSubpaths(pythonBaseDir)

println("Zipping files in " + pythonBaseDir)
pythonFiles foreach { case (_, s) => println(s) }
IO.zip(pythonFiles, target)
println(s"Created $target")

关于python - 使用 SBT 管理同时包含 Scala 和 Python 的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30205003/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com