I recently made the jump from Ant to Maven (2.0-beta snapshot), and I must say that I am very impressed. Having never used Maven before, it only took a couple of hours to set up a fairly complex multi-module build process. We had spent a significant amount of time attempting to engineer a generic ant-based build process by specifying inter-module dependancies, the result was a very messy practically unmaintainable set of build files (although they worked...). With maven, the setup was a breeze and we have gained better maintainability and extensibility. My only gripe is the lack of documentation for Maven 2.0, which is completely understandable being a pre-release application.
The one thing I have not been able to figure out with Maven is how to build our application in a manner suitable for immediate use on the system it is being built on. I have been using the assembly plugin to specify the structure of the application, including dependancies, an executable jar, and configuration/data files, which works just fine: assembly.tar.bz2: Application.jar (the executable jar) lib/ (directory containing all dependencies) config/ (directory containing runtime configuration) data/ (directory containing data files) Our application is an OpenGL-based visualization tool, and unfortunately, much of the testing can not be easily automated (we need to analyze the appearance of OpenGL scenes). This means that during development, we frequently and repeatedly run the application after a build. Using the assembly plugin is the only way I have found to create the correct directory structure for the application, however I would like to do this without actually archiving the components (i.e. create the file structure but don't tar/zip/etc it). Building the archive takes a significant amount of time, and more often than not, we don't ever use the archive (except to extract the contents to the filesystem, run the application, and repeat the process). So my question is... Is there a way to specify an assembly-like structure ( e.g. using bin.xml) to create a non-archived assembly? -- Daniel Krisher
