在家里,我使用 CTRL+SHIFT+B 或 F7 或任何按键序列来启动构建工具的构建。 在工作中,这并不能完全解决问题。
在我的第一份工作(实习)中,我们使用了一个名为 Visual Build 的产品,我非常喜欢它。 这是我用过的最好的构建工具。 这里的缺点是它不是免费的。
在我最近的一份工作中,我对 Ant 几乎一无所知。 现在,不幸的是,我已经深深地陷入了我们的构建过程中,无法自拔。 是的,它确实有效,但是在进行了可视化构建之后,似乎每一步都在与我作斗争。 是的,它是免费的,但我们并不想成为一家仅提供免费软件的开发公司或其他任何公司。
我从未研究过 make 或任何其他构建工具,所以我真的不知道还有什么。
有人见过或有过 Visual Build 的经验吗? 大多数情况下,我喜欢一些关键的东西:
- 它有一个 GUI
- ,它可以运行任意 VBScript,无需编译类,
- 您可以逐步完成构建过程,或者从中间的任何地方开始。
是否有任何免费的构建工具具有此功能? 有什么方法可以让人们相信继续前进是值得的吗? 现在是 2008 年了。我们使用 IDE 来开发,为什么不使用(IBE)来构建呢?
编辑:我主要是在寻找最后一个问题的答案; 有没有可以免费使用的内置 GUI 解决方案?
At home, I use CTRL+SHIFT+B or F7 or whatever key sequence initiates the build for my build tool. At work, this doesn't quite cut it.
At my first job (an internship) we used a product called Visual Build, which I have come to like very much. It's the best build tool I've ever worked with. The down side here is that it's not free.
At my latest job, I came in knowing literally nothing about Ant. Now, unfortunately, I've become deeply involved in our build processes, and cannot extricate myself. It works, yes, but after coming from Visual build, it seems like it's fighting me every step of the way. Yes, it's free, but we're not trying to be a free-software-only development company or anything.
I've never looked in to make
or any other build tools, so I don't really know what else is out there.
Has anybody ever seen or had experience with Visual Build? Mostly I'm fond of a few key things:
- it has a GUI
- it runs arbitrary VBScript without the need of a compiled class
- you can step through the build process, or start from anywhere in the middle.
Are there any free build tools that have this? Is there any way to convince people that it's worth it to move on? It's 2008. We use IDEs to develop, why not (IBEs) to build?
Edit: I'm mostly looking for an answer to my last questions; Is there a solution with a built-in GUI that I can use for free?
发布评论
评论(15)
不是很复杂,但我们使用一组批处理文件。 这效果很好。
Not very sophisticated, but we use a set of batch files. And that works great.
我们使用 FinalBuilder - 我认为它与 VisualBuild 非常相似,尽管我没有使用过后者。
它确实从命令行运行,如果需要,您可以将其与 CC.Net 集成。
We use FinalBuilder - I think it's very similar to VisualBuild, though I've not used the latter.
It does run from the command line, and you can integrate it with CC.Net if you want.
对于 Java 项目,我们使用 Teamcity,类似于巡航控制,但您也可以进行远程运行,即您将更改发送到服务器,它会构建并进行单元测试,如果一切正常,那么您就可以签入,非常好的构建工具,并且免费提供多达 20 种构建配置。
对于我们的 Visual Studio 2005 项目,包括使用 InstallShield 打包最终的 exe 和 dll 并将它们放在共享服务器上,我们使用 Final Builder,它不是免费的,但它非常易于使用和入门。
我们还(从 FinalBuilder)远程登录到许多其他平台(Unix/Linux/OpenVMS),并通过在那里运行 makefile 来启动远程构建。
我们不使用连续构建,但有一个 FinalBuilder Server 可以处理该问题,并且免费提供 FinalBuilder Professional 许可证。
我们对 FinalBuilder 非常满意,它很容易上手,而且功能强大,足以解决大多数问题。
For Java projects we use Teamcity, sort of cruise control like, but you can also do a remote run, i.e. you send your changes to the server, it builds and does unit tests, if everything works ok, THEN you checkin, very nice build tool and free for up to 20 build configurations.
For our Visual Studio 2005 projects including packaging the final exes and dlls with InstallShield and putting them up on a shared server we use Final Builder, it's not free, but it is very easy to use and get started with.
We also telnet out (from FinalBuilder) to a number of other platforms (Unix/Linux/OpenVMS) and start remote builds by running makefiles there.
We do not use continous build, but there is a FinalBuilder Server which handles that and comes free with the FinalBuilder Professional license.
We are very happy with FinalBuilder, it's quite easy to get up to speed with and powerful enough to solve most problems.
CMake。 为 KDevelop、Eclipse、Makefiles 和 Visual Studio(和 XCode)生成构建文件,并且它确实有效。 尽管编程能力相当有限,但您可以轻松地使用宏扩展它。 它很容易学习,并且将现有应用程序从 Visual Studio 移植到它也非常容易。 但是,您只能使用 C++/C 和 IIRC Fortran 代码。
KDE 现在也使用 CMake,因此它似乎可以很好地扩展(即项目/依赖性检查的生成时间还不错)。
CMake. Generates build file for KDevelop, Eclipse, Makefiles and Visual Studio (and XCode), and it really works. You can easily extend it with macros, although the programming capabilities are rather limited. It's easy to learn, and porting an existing application from Visual Studio to it is pretty easy. However, you are limited to C++/C and IIRC Fortran code.
KDE is also using CMake now, so it seems to scale very well (i.e. generation time for the projects/dependency checking is not too bad).
我不确定这正是您正在寻找的,但我喜欢 CruiseControl.NET。 我让它使用 MSBuild 任务构建我的项目。 它没有确切的 GUI,但有一个 Web 界面可以查看构建结果,还有一个系统托盘驻留程序,可以提醒您构建状态。
I am not sure this is exactly what you are looking for, but I LOVE CruiseControl.NET. I have it build my projects using the MSBuild task. It doesn't have a GUI exactly, but there is a web interface to view the results of your builds and a System Tray resident program which will alert you of the build status.
上勾拳。 免费。
UppercuT 使用 NAnt 进行构建,它是非常易于使用的构建框架。
对于大多数项目来说,自动化构建就像 (1) 解决方案名称、(2) 源代码控制路径、(3) 公司名称一样简单!
http://code.google.com/p/uppercut/
这里有一些很好的解释: UppercuT
UppercuT. It's free.
UppercuT uses NAnt to build and it is the insanely easy to use Build Framework.
Automated Builds as easy as (1) solution name, (2) source control path, (3) company name for most projects!!!
http://code.google.com/p/uppercut/
Some good explanations here: UppercuT
回到击键问题,我发现了 CTO 喜欢的 Hoekey。 我自己不使用它,但作为一种为事物分配击键的方式,它非常好。
Going back to the keystrokes thing for a sec, I found Hoekey which the CTO loves. I don't use it myself, but as a way of assign keystrokes to things, it's pretty good.
我对 Visual Build 一无所知,但从你的描述来看,它听起来像是与 Windows 绑定的,并且不从命令行运行。
如果您正在构建 Java 软件(我假设您正在使用 Ant),那么最好有一个跨平台工具。 如果您可以从命令行运行该工具,那么它是可编写脚本的,这对于自动化非常重要。
Ant 也是可扩展的并且是事实上的标准。 您可能使用的许多工具(Cobertura、TestNG 等)都提供 Ant 任务,以便它们可以轻松地与您的构建集成。
我将 Ant 用于所有 Java 项目。 有些人更喜欢 Maven,但我不是其中之一。 Ant 远非完美(XML 语法有点笨拙),但它有详细记录,非常稳定且相当简单。
如果您使用标准工具,例如 Ant 或 Maven,您将能够利用任意数量的 持续集成产品。 我怀疑您会发现许多使用 Visual Build 的工具。
大多数 IDE 支持 Ant,因此它们为您提供了某种 GUI,而您的 CI 服务器将为您提供用于构建的 Web 界面。
I know nothing of Visual Build, but from your description it sounds like it is tied to Windows and doesn't run from the command line.
If you are building Java software (I assume you are since you are using Ant), it's preferable to have a cross-platform tool. If you can run the tool from the command-line, then it is scriptable which is extremely important for automation.
Ant is also extensible and a de facto standard. Many tools that you may use (Cobertura, TestNG, etc.) provide Ant tasks so that they can easily be intergrated with your build.
I use Ant for all Java projects. Some people prefer Maven, but I'm not one of them. Ant is far from perfect (the XML syntax is a bit clunky) but it is well documented, extremely stable and pretty straightforward.
If you use a standard tool, such as Ant or Maven, you will be able to take advantage of any number of Continuous Integration products. I doubt you will find many that work with Visual Build.
Most IDEs support Ant, so they give you a GUI of sorts and your CI server will give you a web interface for doing builds.
NAnt(Ant 的 .NET 端口)。 效果很好并且很容易扩展。
NAnt (.NET port of Ant). Works great and is easily extensible.
对于小型项目,我确实使用构建后脚本,并且在 7z、Nsis 和类似 CLI 工具的支持下,它非常适合我。
For small projects I do use post-build scripts and with the support of 7z, Nsis and similar CLI tools it's doing the job perfectly for me.
TeamCity 和 CuriseControl 适用于任何项目,但这就是您选择 TeamCity 的原因:-
易于设置:在设置过程中,我们发现 TeamCity 更易于设置和使用,尤其是与 CruiseControl 相比。 我们不需要编辑 XML 文件或大规模配置单个构建机器(例如 CruiseControl)。
易于扩展性:TeamCity 也因其易于扩展性而脱颖而出。 如果我们发现构建在队列中等待的时间太长,我们可以添加更多计算机作为代理。 我们唯一的额外工作是向 TeamCity 服务器注册新计算机并安装 msbuild 和 subversion。
与 Subversion 交互:可以检查自上次构建以来提交了多少变更以及哪些变更、谁启动了构建等。
TeamCity and CuriseControl works well for any projects,but here is why you would like to choose TeamCity:-
Ease of setup: During setup we found TeamCity easier to setup and use especially compared to CruiseControl. We did not need to edit XML files or massively configure individual build machines like CruiseControl.
Ease of extensibility:TeamCity stands out in its ease of extensibility too. If we find that builds are waiting in the queue too long, we can add more computers as agents. The only additional work on our end is registering the new computers with the TeamCity server and installing msbuild and subversion.
Interaction with Subversion: One can check how many and what changes were committed to subversion since the last build, who started a build etc.
我非常喜欢 scons 来构建 C++ 文件。 它非常简单,构建脚本是用 Python 编写的(在我看来,这比一些拼凑在一起的 DSL 好得多)。
I've grown very fond of scons for building C++ files. It's very straightforward and the build scripts are written in Python (which is much better than some hacked together DSL IMO).
Ant 或 Maven 是很棒的小型构建工具。
如果您想自动化构建过程,可以使用一些很棒的工具,例如 TeamCity 和 竹子。
Ant or Maven are great little build tools.
And if you want to automate the build process there are some great tools like TeamCity and Bamboo.
就我个人而言,我几乎所有事情都使用 Makefile,因为它们非常简单。 但在我的工作中,我被迫使用ant。
我反对 ant 的主要问题是 XML 使其难以阅读和理解,即使有正确的缩进。 另一方面,XML 的冗长在读取别人的 ant 文件时会有所帮助,但当文件超过几十行时,它仍然会成为 PITA。
至于要构建一个 GUI……我一直觉得这是一个缺点而不是优点。
Personally I use Makefiles for pretty much everything because they are simple as hell. But in my work, I'm forced to use ant.
The main problem I have against ant is that XML makes it hard to read and understand, even with the correct indentation. On the other hand, the verbosity of XML can help when reading someone else's ant file, but still makes it a PITA when the file is more than a few tens of lines.
As for having a GUI to build... I've always felt that's a minus rather than a plus.
Maven 对我来说是最好的,因为它可以处理项目依赖项
Maven is the best for me because it handles the project dependencies