How to organise your ATG projects


If you develop for ATG Dynamo, how do you structure your modules and dependencies?

How do you structure the projects? source directories, JARs configs etc.

How do you build and deploy? What tools do you use?

Best Solution

We have a monolithic architecture with a single ATG module. We originally developed this site with JHTML and have since created a (monolithic) J2EE web app within this ATG module and converted all of our JHTML to JSP.

Our project on disk looks like this:

    class (compile java to here)
    config (primary configpath)
    docroot (JHTML docroot)
    dev (configpath for dev environment)
    test (configpath for QA environment)
    prod (configpath for prod environment)
  j2ee (j2ee web-app)
    dir-a (application JSPs)
    dir-b (application JSPs)
    java (java src)
    sql (sql src)

We have an Ant build file that compiles the Java source to deploy/class. On dev/test and prod JAR up. We have a single build server that checks out the CVS repository and uses shell scripts and the build.xml to compile and deploy to the requested server using Interwoven OpenDeploy (essentially rsync).

Related Question