views:

76

answers:

3

Most of the project artifacts (build time, run time libraries) needed by our development environment is handled dynamically via maven dependencies. But there are other programs which have to be used for all developer accounts before they can reliably use the system (e.g. JDK, Ant, svn client or tortoise svn, eclipse, maven, jboss appserver ...)

Is there a way to automate this, so that you can get the developer quickly up to speed on the development environment. How an where do you store such artifacts (currently we point to a http server to download such artifacts, but its quite burdensome over a period of time), what other options exist over here.

EDIT 1:

  1. Some of the tools don't make changes to the registry, predominantly you unzip and run (e.g. ANT, JBoss, ...).
  2. Some of the tools say Tortoise SVN is painful as you need to install them via their installer. If the vendor starts pushing out their delta changes, there is no clear way to push these changes to all developer machines)
+1  A: 

We've been using Virtual Machines with Ubuntu Linux for a year now, to do exactly what you're describing. That way, the only thing developer need to do to get started is run a virtual machine with all the necessary stuff on it.

It has a little bit of performance penalty, but you can work perfectly with it.

Pablo Santa Cruz
Most of our development machines are currently based on Windows and am not veering towards having a virtual image which can be used by the developer, the reason being most of the time the tools needed for the project keeps changing and there is no way to keep this in sync on all machines (e.g. jboss moves from 5.0.0 to 5.1.0 or a patch version)
Joshua
A: 

The simplest solution would be to prepare a disk image for the whole machine which would contain all these tools. But that is not a 'modular' option as it also dictates the operating system.

The best solution would be 1 big archive that contains all the tools needed. The problem with this option are the files that would be missing due to not installing the tools properly (such as the svn shell extensions that are defined in the Windows Registry).

Unfortunately, there is no common method to do all this. It's an extremely painful process to set everything up, took me around 4 hours to set up my current workstation (eclipse, svn, maven, ..)

But it could be worse: Imagine you used MS Visual Studio with MS Sql Server. Their setup scripts take a HORRIBLE time installing. Service Pack 1 for VS took 90 minutes to install.

f1sh
I would prefer a solution which is kind of driven via your SCM system, so that you make your updates to the images there and subsequently all developers can pick up those changes
Joshua
A: 

One options is to create a system image but it also have its downsides. Our system support department tried this option but quickly found out that some of the tools installed on the machine that was used to create the system image were storing user/license information during installation. When the image was restored on a brand new system, license collisions were reported.

Tahir Akhtar
most of the software we use are open source and hence I am not too much worried about licensing issues for the moment.
Joshua