7

我们公司需要的是一种用于 Linux/C++ 的发布管理工具。我们的产品由多个库和配置文件组成。在这里,我将列出我们希望此类系统具有的基本功能:

  • 跟踪依赖项的能力,轻松增加依赖项的主要版本增加的库的主要版本。它应该在内部构建某种依赖关系图,以便知道谁受到更新的影响。

  • 知道如何构建它处理的产品。无论是特定的构建文件,还是更好的——阅读和理解生成文件的能力。

  • 使用 SVN,以便它可以从那里检查新版本并进行构建。

  • 生成一些安装程序 - 以 rpm 或 tar.gz 格式。为此,它应该能够理解 rpm 规范文件格式。

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

4

5 回答 5

2

您应该考虑混合使用 Hudson、Maven(用于构建管理)、Ivy(用于依赖项管理)和 Archiva(用于工件归档)。

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

玩得开心!!

于 2010-02-21T16:21:55.470 回答
1

看看 DDJ 的这篇文章,其中介绍和实现了一个更强大的构建系统概念(比 make)。不确定它是否能很好地满足您的要求,但它是我见过的最接近的。几个月前我也在寻找同样的东西,然后我发现了这篇文章。

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

于 2010-02-21T00:43:15.840 回答
1

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

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

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

  • Cmake 有几个工具,ctest 和 cdash,我们用来进行日常构建并查看测试的情况。

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

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

于 2010-02-21T22:56:32.563 回答
0

Maven有一个原生代码插件。我不认为它会做你想做的一切,但它擅长跟踪依赖项的版本号,会构建人工制品,它会与你的 VCS 一起工作。

于 2010-02-19T14:51:56.430 回答
0
  • 不知道
  • cmake/scons:我使用过 cmake,但我并不完全喜欢它,但我听说过关于 scons 的好消息。但是 scons 是基于 python 的,所以你需要在 build/dev 机器上安装 python。
  • 我使用Hudson,它有一个从 svn 获取的插件。它通常智能地执行,特别是仅当某些文件在 svn 更新中发生更改时才构建。Hudson 很容易上手。Hudson 是基于 Java 的,在 Java 社区中非常流行。这意味着它非常跨平台,但您需要在构建机器上安装 JRE。
  • 大概可以在hudson中调用一些rpm工具。
于 2010-02-20T18:54:01.980 回答