用于Linux的发布pipe理系统

我们公司需要的是一种Linux / C ++版本pipe理工具。 我们的产品由多个库和configuration文件组成。 在这里,我将列出我们希望这样的系统具有的基本function:

目前我们正在研究这个已经非常实用的工具。 但是我相信我们的任务不是独一无二的,应该有一些工具可以完成这项工作。

在我目前正在开发的项目中,我们使用cmake和其他Kitware工具来处理本地代码(C ++)的大部分问题。 逐点回答:

  • cmake脚本处理我们不同项目的依赖关系。 我们有一个依赖关系图,但我不知道是自制脚本,还是cmake提供的功能。

  • 那么cmake生成关于平台的makefile。 如果在开发的情况下要求这样做,我为eclipse cdt和visual studio生成项目。

  • Cmake有几个工具,ctest和cdash,我们用来做日常构建,看看测试是如何进行的。

  • 为了创建安装程序cmake有cpack。 从一个脚本中,它可以在Linux中生成tar.gz,deb或rpm文件,或者自动生成NSIS脚本来在Windows中生成安装程序。

对于Java代码,我们使用这里已经提到的maven和hudson。

您应该考虑使用Hudson,Maven(用于构建管理),Ivy(用于依赖关系管理)和Archiva(用于文件存档)之间的混合。

另外,如果您正在研究cross.compilation,请查看Make Project Creator(MPC)和Bakefile。

玩的开心!!

看看DDJ的这篇文章,其中提出并实现了一个更强大的构建系统概念(比make)。 不知道它会适合您的要求,但它是我见过的最接近的。 几个月前我正在寻找同样的东西,然后我发现了这篇文章。

http://www.drdobbs.com/architect/218400678

Maven有一个本地代码插件 。 我不认为它会做你想做的一切,但它是跟踪版本号的依赖关系,将建立文物,它会与您的VCS工作。

  • 不知道
  • cmake / scons:我用过cmake,但我并不完全喜欢它,但是我听说scons真的很好。 但是scons是基于python的,所以你需要在build / dev机器上安装python。
  • 我使用Hudson ,它有一个插件从svn中获取。 它通常能够智能地执行,特别是只有在某个文件在svn更新中发生变化时才会生成。 哈德森很容易上手。 Hudson是基于Java的,在Java社区非常流行。 这意味着它是相当跨平台的,但是你需要在生成机器上安装JRE。
  • 大概可以在哈德森内部调用一些rpm工具。