Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ant 如何高效地进行跨平台构建_Ant_Msbuild_Build - Fatal编程技术网

Ant 如何高效地进行跨平台构建

Ant 如何高效地进行跨平台构建,ant,msbuild,build,Ant,Msbuild,Build,我正在为一个团队建立构建系统,该团队生产在多个平台和体系结构上使用的API。在设置Ant以构建所有Java代码方面已经花费了大量的工作,因此如果可能的话,我更愿意使用Ant 我在哪里遇到了如何构建C++软件的问题。以下是我需要支持的平台和语言: Java-Linux-32位和64位:Ant Java-Windows-32位和64位:Ant C++-Linux-32位和64位:带有CPPStasks的Ant(问题1) C++-Windows-32位:(问题2) 注:Windows上的C++是M

我正在为一个团队建立构建系统,该团队生产在多个平台和体系结构上使用的API。在设置Ant以构建所有Java代码方面已经花费了大量的工作,因此如果可能的话,我更愿意使用Ant

<>我在哪里遇到了如何构建C++软件的问题。以下是我需要支持的平台和语言:

  • Java-Linux-32位和64位:Ant
  • Java-Windows-32位和64位:Ant
  • C++-Linux-32位和64位:带有CPPStasks的Ant(问题1)
  • C++-Windows-32位:(问题2)
注:Windows上的C++是MS VisualStudioC++项目。

我认为问题1的答案是CPPtaskices,因为这似乎是从Ant中构建C++的标准方法。p> 对于问题2,我也可以使用CppTasks,但是开发人员将在visualstudio中编译,因此使用他们的visualstudio项目进行构建似乎是有益的,这意味着从Ant调用MSBuild


有人曾经尝试过这个方法,并且在Linux和Windows上都有很好的解决方案来构建java和C++吗?< /p> < p>这个列表看起来有点不同(我的观点)

  • 适用于所有平台的Java-Maven
  • C++-也可以是Maven(检查)

您是否使用像这样的连续构建系统

使用Jenkins,您的构建可以通过签入/提交、时间和/或命令自动触发。Jenkins最棒的一点是,您可以让它自动构建所有不同版本的软件

例如,你可能需要在Linux C++上运行<代码>制作< /代码>,但是在Windows系统上使用 MSBudio,并且你需要在Linux机器上触发一个构建,并且在Windows机器上触发一个构建。Jenkins可以设置为自动执行此操作。当提交发生时,可以同时触发所有系统上的所有不同构建。然后,您可以将您需要的构建存储在Jenkins上,并让您的用户实际从他们需要的项目中提取他们需要的类型

<> P>有很多方法可以建立,但是最简单的是简单地创建四个单独的作业(一个用于java 32位,java 64位,C++ Linux,C++微软)。您不一定需要单独的Microsoft Java构建(至少在理论上是这样),但没有什么可以阻止您

您可以让一台Jenkins服务器在其他构建系统上运行“从属”作业,因此您可以让Jenkins在64位Linux系统上运行,但可以使用32位Linux系统作为从属来执行32位构建,并调用Windows从属来执行Visual Basic构建。这样,您的所有工作都位于中心位置,但您可以使用所需的环境

如果您从未使用过连续构建系统,请下载Jenkins并使用它。它是免费的、开源的,而且非常、非常容易使用。您可以在任何具有JDK或JRE 1.6的机器上运行它。如果下载Windows版本,它甚至还附带了内置的JRE

你最好的选择是使用一个连续构建系统,并允许它处理混乱。顺便说一句,还有,而且(几个月前从詹金斯那里分离出来)

应该很符合这个要求。它本机支持Ant和MSBuild,并且有一个非常好的跨平台故事(用Java编写,但与例如Win的优秀集成)


在另一个构建系统中包装您赢得的基于MSBuild的构建没有任何好处。

使用Ant的现有基础设施太多,因此,切换到Maven的成本太高了。我们最终得到了一个单一的Any构建框架,该框架使用cpptasks执行gcc和msbuild构建,并通过Hudson配置为在Linux和Windows从机上运行。它工作得很好,但是仍然有相当大的开销来维护不同的配置。