File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Ant, Maven and Other Build Tools and the fly likes Autonomate Build and Release Process... Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Engineering » Ant, Maven and Other Build Tools
Bookmark "Autonomate Build and Release Process..." Watch "Autonomate Build and Release Process..." New topic

Autonomate Build and Release Process...

William de Oliveira

Joined: Sep 17, 2008
Posts: 1
Hello everybody,

I am new in the forum and would like little help from you ...

I am experiencing some problems in order to liberate the systems produced by the company where I work.
What happens is:
We have a model of manufacturing that is divided into modules that interact but are not necessarily dependent on each other. this way, each area is responsible for delivering its system, according to the needs of the client.
For marketing reasons, the company agreed to sell all the modules as a single system, creating a single package with the system of each area.

How do you think that we could manage this project in the "Subversion" / Maven? As a main project with subprojects below or as several projects?
Is there a way to manage the builds running tests of integration and finally mounting a package with all the jar (packages) generated and its dependencies in an automated manner?

I did some testing with Maven + Some of Continuous Integration tools that were very effective in the initial (builds, tests ...), but in the end they couldn�t mount a package of release, or at least generate all the jars in a single folder to make it easier to treat.

I think what I want is a little difficult to achieve, but I wish that you could suggest me a better way to do it or share your experiences ...

Have you already gone through something similar?

Peter Johnson

Joined: May 14, 2008
Posts: 5852

I had a similar situation. Though our components lived in a multitude of different source control systems, were built with a variety of tools, some of them continuous integration tools, others from very complicated make files (our package contained C/C++, PHP, and Java apps), and other components were supplied "as-is" by third parties. I created an Ant script that packaged all of this together into a single package that could be burned onto a CD. Fortunately, each component's build process placed the build results into a well-known directory. I used a properties file to identify those locations - those locations did tend to change between major releases. This script, and all of the files that were package-specific such as the package readme file, were stored in a separate project under source control.

JBoss In Action
Ilja Preuss

Joined: Jul 11, 2001
Posts: 14112
Mhh, sounds to me as if what you want sounds perfectly well possible with a combination of Ant and Cruise Control. What made you think that you couldn't do it?

The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Martijn Verburg

Joined: Jun 24, 2003
Posts: 3275

Maven 2 with its assembly plugin also gives you a large amount of flexibility (We've got multiple EARs that contain SARs and RARs and WARs and HARs and JARs, so we've stretched Maven a fair bit )

Cheers, Martijn - Blog,
Twitter, PCGen, Ikasan, My The Well-Grounded Java Developer book!,
My start-up.
Tim Holloway
Saloon Keeper

Joined: Jun 25, 2001
Posts: 17417

Maven is designed with the idea of "one POM, one product" in mind. So it tends to work best when each JAR, WAR, EAR, or whatever is a distinct Maven project. Which, in turn, tends to work out as a project for whatever IDE (if any) you use. However, it's perfectly reasonable that each of these projects be sub-projects or even sub-sub-projects on your source version control tree.

Alongside the projects that are simple Java components, you can also have assembly projects, however. Basically, that's a Maven project whose dependencies are the components you want to bundle together as a package for delivery. So one of the things you can do if you're shipping a limited number of standard assemblies is to simply make projects for each assembly.

An IDE is no substitute for an Intelligent Developer.
I agree. Here's the link:
subject: Autonomate Build and Release Process...
It's not a secret anymore!