我这里有 300 行长的 NAnt 文件,非常混乱。我想知道是否有编写 NAnt 脚本的任何样式指南,以及这样做的最佳实践是什么。
有小费吗?
我不知道任何已发布的风格指南,但我当然可以分享我的经验。您可以使用在其他编程环境中使用的许多相同技术,例如使代码模块化并将其拆分到多个文件中。在我设置的环境中,每个项目的布局如下:“[ProjectName]\Common”包含一个通用构建文件,该文件链接到我的几乎所有项目。我还有一组常见的颠覆目标存储在一个文件中。“Common”子目录实际上是一个 svn:external,因此它会自动在多个项目之间保持同步。在 Common.build 文件中,有很多环境属性,加上一些可重用的文件集、一些可重用的目标,以及每个项目“StartUp”目标使用的“StartUp”目标。
“[ProjectName]\Project.build”包含所有项目特定的属性和文件集,其中一些会覆盖 Common.build 中的设置。该文件还包含一个“启动”目标,它设置一些运行时设置,如程序集版本信息和任何相关路径。它还从 Common.build 执行“启动”目标。此文件包括 Common.build 文件。
“[ProjectName][AssemblyName].build”包含特定于单个程序集的所有设置和目标。该文件包括 Project.build,而后者又包括 Common.build。
这种层次结构在我们的情况下运行良好,我们需要在持续集成服务器上构建产品的主干版本和多个分支版本。就目前而言,用于构建主干版本的脚本与任何一个分支之间的唯一区别只是几行代码。