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.

Kara
  • 6,115
  • 16
  • 50
  • 57
mmmm
  • 2,431
  • 2
  • 35
  • 56
  • 3
    What version of Delphi are you using? I don't want to sound like a complete noob but what is it you could do with Maven that can't be done with Project Groups? – Lieven Keersmaekers Jul 07 '10 at 10:56
  • 3
    @Lieven Maven even downloads required dependencies from the Internet automatically - so you need only a tiny 'bootstrop' project file and Maven will get all the DCU, DLL, documentation from one or more Internet repositories - or your local repository if you only use your own libraries. Oh, and it will run documentation tools, code analysis plugins, and deploy the whole thing to the web if you like. – mjn Jul 07 '10 at 13:28
  • @mjustin everything and the kitchen sink it seems. Thank you for the explanation. – Lieven Keersmaekers Jul 07 '10 at 14:10
  • 1
    The dependencies (external and internal) is what I am after – mmmm Jul 07 '10 at 20:53

3 Answers3

3

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 :)

mjn
  • 36,362
  • 28
  • 176
  • 378
  • 1
    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 Keersmaekers Jul 07 '10 at 14:14
  • 1
    Ant is a batchfile with many `<`'s and `>`'s ... :) – mjn Jul 07 '10 at 14:46
  • 1
    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 Jul 07 '10 at 19:19
1

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. 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.

Community
  • 1
  • 1
Marco van de Voort
  • 25,628
  • 5
  • 56
  • 89
  • 1
    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. – mjn Jul 07 '10 at 13:22
  • 1
    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? – mjn Jul 07 '10 at 14:00
  • 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 Jul 07 '10 at 19:26
1

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

mjn
  • 36,362
  • 28
  • 176
  • 378