我正在为一个团队建立构建系统,该团队生成在多个平台和架构上使用的API。已经花了很多工作来设置Ant来构建所有的Java代码,所以如果可能的话,我更愿意坚持使用Ant。
我难倒的地方是如何构建C ++软件。以下是我需要支持的平台和语言:
注意:Windows上的C ++是MS Visual Studio C ++项目。
我认为问题#1的答案是CppTasks,因为这似乎是从Ant构建C ++的标准方法。
对于问题#2,我也可以使用CppTasks,但开发人员将在Visual Studio中进行编译,因此使用他们的Visual Studio项目进行构建似乎是有益的,这意味着从Ant调用MSBuild。
之前是否有人尝试过此操作并且有一个很好的解决方案来构建Java& Linux和Windows上的C ++?
答案 0 :(得分:4)
您是否使用Jenkins等持续构建系统?
使用Jenkins,您的构建可以通过签入/提交,时间和/或命令自动触发。 Jenkins的优点在于,您可以自动构建软件的各种版本。
例如,您可能需要在Linux C ++上运行make
,但在Windows系统上使用msbuild
,您需要在Linux机器上触发构建,在Windows上触发构建机。 Jenkins可以设置为自动执行此操作。当提交发生时,可以立即触发所有系统上的所有各种构建。然后,您可以在Jenkins上存储所需的构建,并让您的用户实际从他们需要的项目中提取所需的类型。
有很多方法可以设置,但最简单的方法是简单地创建四个单独的作业(一个用于Java 32位,Java 64位,C ++ Linux和C ++ Microsoft)。您不一定需要单独的Microsoft Java构建(至少在理论上),但没有什么能阻止您。
你可以让一个Jenkins服务器在其他构建系统上运行“slave”作业,这样你就可以让Jenkins在64Bit Linux系统上运行,但是使用32位Linux系统作为奴隶进行32bit构建,并调用一个Windows slave来做Visual Basic构建。这样,您的所有工作都位于中心位置,但您可以使用所需的环境。
如果您从未使用过Continuous Build系统,请下载Jenkins并使用它。它是免费和开源的,非常非常容易使用。您可以在任何具有JDK或JRE 1.6的计算机上运行它。如果您下载Windows版本,它甚至还内置了JRE。
您最好的选择是使用连续构建系统并允许它处理混乱。顺便说一句,还有Bamboo,CruiseControl和Hudson(几个月前从Jenkins分离出来)
答案 1 :(得分:1)
TeamCity应该很好地符合这个法案。它原生支持Ant和MSBuild,并且具有相当好的交叉平台故事(用Java编写,但与Win完美集成)。
不要看到在另一个构建系统中包装Win WinBuBuild的构建有任何好处。
答案 2 :(得分:0)
这个列表看起来有点不同(在我看来)
答案 3 :(得分:0)
你能混用Ant和Nant吗?