(Project links above in the grey bar)

About These Sample Projects

AoI, or ArtOfIllusion, is a 3d modeling program written in Java/Swing. I had been working IN it off and on for a year or two, but I wanted to provide some of my own functionality for a particular use case, which involved messing with the source code.

I found the codebase organized differently than what I prefer, so I thought I'd mavenize it in 2006, to see how easy or hard that would be.

What started out was a single ball of mud styled codebase ( though that is actually an unfair over-generalization).

When finished, the core piece, and each plugin was

  • Carefully versioned.
  • Stored in it's separate clean jar.
  • Placed in a separate clean project.
  • Set up as
    • Eclipse Project
    • Idea Project
    • Useable without an IDE just using Maven
  • Placed in a subversion repository.
  • Relatively easier to work on.

But don't take my word for it, check out the projects.

What if I'm Not Interested in 3d Modeling ?

Yes, of course. You'll only want to examine them from the perspective of how they are organized as against Maven's project archetypes.

If You Want to Start With the Documentation

Start with this project:

http://docs.aoi.appwriter.com/maven-howto/

To Check Out the Projects

  • Install the latest Subversive Subversion client in your Eclipse IDE or IntelliJ IDE
  • Check out anonymously from this url: http://svn.aoi.appwriter.com/aoisvn/

Where to Start

The core project is obviously aoi-core, this is where most of the meat is

The other aoi-whatever projects are all plugins.

The maven-howto project is the project that attempts to tie it all together.

Other Cool Things to Note - It's Own Maven Repo !

It's more than just "mavenized", the respective jars are also published in it's own repository.

Check out their pom.xml file and you'll see how maven checks out these jars and puts them in your local repo when you run maven.

Was the Mavenized Code Base Accepted ?

No.

The core contributors like Ant (who doesn't?) and felt their time could be better spent on the core project than worrying about a new build system. Actually they never announced a decision against Maven, they just never pursued my forks.

As a result, I have to re-mavenize every new release, so I created routines in a combination of java, ant, and maven to handle the conversion every couple of months.