Python是这个钉子的正确锤子吗?(构建脚本)

com*_*pie 15 python build-automation build-process

目前我正在使用Windows批处理文件来构建我的软件.它可以运行MSBuild,复制文件,创建ZIP文件,运行一些测试,包括颠覆版本号等.

但问题是,批处理文件是邪恶的.所以我想换个更好的东西.我打算用Python重新创建我的构建脚本.这是一个明智的选择吗?那些构建系统如Ant,SCons,Maven,Rake等等.使用其中任何一个都是更好的选择吗?

注意:我不打算替换我的Visual Studio解决方案/项目文件.我只想编写创建软件版本所需的所有其他内容.

编辑:我有充分的理由离开批处理,这不是我的问题所在.我想知道(例如)SCons给我的是什么,而不是普通的Python脚本.

big*_*ose 16

对于使用Python编写脚本的工具,我碰巧认为Paver是一个比SCons更容易管理且更灵活的构建自动机.与SCons不同,Paver专为管理和分发软件项目而进行的大量非编译程序任务而设计.


pax*_*blo 8

批处理文件并不邪恶 - 它们实际上远离了command.com的脑死亡时代.现在,命令语言非常具有表现力,只需要您花费一些精力来学习它.

除非您的构建脚本存在实际问题,否则无法修复(如果是这样的话,那就是您应该问的问题,而不是一些愚蠢的"什么是最好的替代品?":-),我的方法会要坚持你所拥有的.

一种模糊的邪恶感不会成为我浪费"修复"未被打破的东西的理由.除非有明显的改变优势("不那么邪恶"不是我认为明显优势的东西),这将是浪费的努力.

  • +"如果没有破坏就不要修复它",-1代表"只需要你努力学习它就需要一点努力".写一些不仅仅在批处理文件中调用程序的东西仍然比其他任何东西复杂很多倍:( (4认同)
  • +1:批处理文件是一个巨大的痛苦,因为决策和循环是如此原始.异常处理几乎不存在 - 除非通过GOTO. (4认同)

小智 6

当你提到Python和SCons时,我会说去SCons.毕竟是Python.是的,上述任何一个都是比手动构建脚本更好的选择.