Choosing a scripting/build tool [closed]
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this questionWe are currently working on a project with both actionscript and Java. Up to now, we were using Ant as our main build tool, but the dumb amount of duplication it implies and the lack of flexibility (we are building a pretty large amount of small sub-projects, and copying all of the build files every time is a pain) are pushing us towards a change of tools.
EDIT3: I'm done rewriting all of our builds in Gant, and even though it's not perfect, it downsized our build files massively and made adding new project much more straightforward, so I'd definetely recommand Gant to people not wanting to change their build philosophy and project structure, but just looking for a more convenient tool 开发者_Go百科than ant. I might have a look into graddle and/or Ivy one of those days.
EDIT2 : After trying out Buildr, we ruled it out because it does way more things than what we actually need. I'm now trying Gant which looks like right what we need but the documentation is pretty small. Is it worth it moving all the way to Gradle, or is th project not mature enough yet ?
EDIT : I'll try to clarify our problems with Ant. We have several sub-projects with similar layouts which we have to compile and run tests for. Once that's done, some of them need to be packaged together to produce executables (namely a client, a server, and some stand-alone demos). The work to descripe our standard layout in ant is pretty long, and it's awfully difficult to introduce small variations without rewriting the whole macro. (Say, one of the projects need to grab its visual assets from a different repository).
- Gant which would allow us to reuse the ant tasks that are already out there both for Flash and Java
- Gradle for the same reasons even though it looks slightly more complicated
- Rake which seems to be highly recommended. The downside being the experimental support of action script integration and our lack of knowledge of Ruby
- Buildr which looks pretty cool, but here again, no knowldege of ruby
- Scons seems to have less momentum, but Python is a pretty cool scripting language
Maven was considered, but has been eliminated because of the inherent complexity and the apparent error-proneness. We are currently leaning towards Gant. Does any of you have experience using several of these tools ? How do they compare ?
Our needs are pretty basic : Compile and package projects, deploy them to several targets and some scripting capability (to run project-specific performance tests for instance). Of note could also be that we use Hudson to handle continuous integration.
I'm not sure switching to gant will solve your problems. Gant is just writing build files in groovy instead of xml. I think your issue lays more in the way you're using ant. Hard to say without more details, but phrases like "dumb amount of duplication" and "copying build files around" make me think you could be using ant more efficiently.
If you haven't already, look at your ant tasks, and see if you can refactor them so eliminate that duplication. Also, checkout the -find option to ant if you haven't seen it already. You shouldn't need to be copying build files around.
BTW, Ivy is for dependency management, not building.
I know that people in our company who do Java for a living swear by Ivy, but not having any experience with it, I don't have enough facts to back this suggestion up with technical arguments. They did mention lack of duplication as a plus though compared to Ant they used before. Caveat emptor.
精彩评论