views:

134

answers:

3

Does anyone know whether there are any tools that re like Maven - I'm looking for something to manage project dependencies ?

Any suggestions would be greatly appreciated.

+1  A: 

Well, newer Delphi's support msbuild, (more an ANT substiute) which is pluggable also, and plugs into the IDE which does project management and is also extendable (via toolapi).

Attempting to switch to other build tools that lack deep Delphi compiler integration, runs into problems because they can't deal with the fact that the Delphi compiler can decide compile heaps of units in one run, and doesn't follow the "one compilation unit" at a time of other systems.

It was suggested for Free Pascal several times too, see e.g. http://stackoverflow.com/questions/1893469/could-free-pascal-benefit-of-something-like-apache-maven

In general, these systems seem very complicated, and the really needed functionality still needs to be implemented in plugins.

Marco van de Voort
I am using Maven and it is very easy to use (IDE support in NetBeans and Eclipse, it is a very comfortable and powerful tool). It may be complicated to write a tool like Maven, but the benefits are more worth it. And Maven projects can be run in Hudson CI, which is also the CI tool used by the Delphi developers btw.
mjustin
What does 'one compilation unit at a time' mean? - If I use a script file or Apachen Ant with dcc32.exe and a dpr file, will this be slower than with msbuild?
mjustin
Depends on how it checks what to build. If it does it at startup, it will go wrong. If it reexamines the whole state after each dcc execution, it might be ok. But even then there are problems, e.g. .dcu files might not end up in unexpected directories, because units from a different package were auto-recompiled and put into the current packages object package, leading to multiple .dcus and other scary situation. That could be considered a problem in the project. True. But if you don't take care of situations like this, it can get messy and intransparent to the user.
Marco van de Voort
+1  A: 

You can use Maven with Delphi, if you define binary artifacts. I have implemented a prototype which even did dependency resolution for libraries, DCU and DLLs. But I am afraid that there are too many developers who don't like the idea of using a Java build tool for Delphi :)

mjustin
@mjustin, only speaking for myself but I am not using tools like ANT, NANT, Maven, Hudson, Cruise Control because I don't like them but I seem to be to stupid to figure them out. Every time I try one of them, I get the feeling that our current buildserver using plain batch files are simpler.
Lieven
Ant is a batchfile with many `<`'s and `>`'s ... :)
mjustin
OP said "like Maven", iow something similar might not have Java (and its runtime dependancies). I agree with Lieven btw, that is my feeling in, often those tools are very complex, and don't solve so much. Maybe they help with extremely large and complexly structured teams, but I haven't found a case where it really simplifies (even in a 20 person team). The time to develop the plugins seems to be larger and more complex than writing something directly for the job.
Marco van de Voort
+1  A: 

For C# / the .Net platform there are projects listed on the Apache Incubator page at http://incubator.apache.org/nmaven/

  • NMaven @ Codeplex - Continuation of rewritten trunk including plugins.
  • NPanday - Continuation of 0.14 development branch including plugins and Visual Studio integration.
  • Byldan - A Maven-like tool written in C#

NMaven was retired from the Apache Incubator in November 2008, Development is now focused in these related projects

mjustin