File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Ant, Maven and Other Build Tools and the fly likes What is the key difference between Maven and Cruise Control to make a choice of choosing one ? 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 "What is the key difference between Maven and Cruise Control to make a choice of choosing one ?" Watch "What is the key difference between Maven and Cruise Control to make a choice of choosing one ?" New topic
Author

What is the key difference between Maven and Cruise Control to make a choice of choosing one ?

Rajneesh Kumar Rajput
Ranch Hand

Joined: Feb 25, 2009
Posts: 39
Can someone please help me to find the key differences, so that I can choose either Maven or Cruise Control as the standard tool for managing the project?

We do want to standardize the project build management, test case execution, documentation and release deployment automation all together.
David Newton
Author
Rancher

Joined: Sep 29, 2008
Posts: 12617

One's a build tool like Ant, one's a continuous integration server. Choosing one or the other doesn't make any sense.
Rajneesh Kumar Rajput
Ranch Hand

Joined: Feb 25, 2009
Posts: 39
Ant/Maven responsibilities, I understand.

what are the other tasks suppose to be performed/expected by setting up continuous integration server?
David Newton
Author
Rancher

Joined: Sep 29, 2008
Posts: 12617

All a CI server does is run whatever is in an Ant/Maven/etc. build file.

The point of a CI server is to merge commits and build. Normally the build process includes things like unit tests, sometimes functional tests, run code metrics, whatever else you normally do in a build. It can then report back on various aspects of the build. Did the build fail? Who broke it? Is the overall code quality getting worse or better? And so on.
Rajneesh Kumar Rajput
Ranch Hand

Joined: Feb 25, 2009
Posts: 39
Thanks David, it gave me a broader idea.

One more quick question, if I get it correct?

CI server (Cruise Control), will itself behave as some version control like CVS, SVN
or CI server still needs a separate version control to be set up for the project and will just provide merge commits feature to derive report for build failure etc?
David Newton
Author
Rancher

Joined: Sep 29, 2008
Posts: 12617

CI servers are *not* version control.
Thapliyal Akshat
Greenhorn

Joined: Jun 04, 2009
Posts: 29
Hey Rajneesh,

Just to addon on David's reply.

CC servers are not version control. You can define in maven under <scm> the path of your repositories and under <ciManagement> the Cruise control configurations. You can define your plugins in maven to deploy automatically on Appserver.

CC knows how to interact with ANT,Maven or any other build tool.

CC is just an integration environment. It picks your code from the head of VSS/SVN/CVS and builds your artifiacts and deploy it on your AppServer.

It's the mediator between your build tools and the deployment environment. Either you do it manually or through CC.

Hope this will clear the muddle of cloud.


Thanks and Regards,
Akshat
Vivek Kr Singh
Ranch Hand

Joined: Oct 12, 2007
Posts: 56
If you are looking for a simple, configurable and extensible Continuous Integration tool, then i would suggest Hudson. We are using this as default for CI for long and it has always proven to be reliable.


SCJP 1.4
Rajneesh Kumar Rajput
Ranch Hand

Joined: Feb 25, 2009
Posts: 39
yes, the explanation is further clarified other doubts had in mind.

Thapliyal Akshat wrote:
It's the mediator between your build tools and the deployment environment. Either you do it manually or through CC.


If I just see this point, either using Maven / Ant some tasks definition can be written which will do the automatic deployment work also after checking out code and doing compilation on the build.
so, would you clarify this like how CC is better than maven/Ant in this specific area?

except above, like David told commits merges and build failure reporting, I have found some good points on top is that in Cruise Control you get a web control to see, compare and find out various commits differences and can easily review the changes done and let CC to control the stability of the builds also.

further inputs and suggestions are appreciated, and looking forward to take a good suggestion based on this conversation.
David Newton
Author
Rancher

Joined: Sep 29, 2008
Posts: 12617

so, would you clarify this like how CC is better than maven/Ant in this specific area?

You're still trying to compare grasshoppers with tree bark: they're two completely different things. CC isn't "better" than Maven/Ant. CC *uses* Maven/Ant.

Assume a team of a dozen people. Each person makes local changes and sends them upstream. The CI server says "Oh, look, a check in, I should to a build." The CI server pulls in the latest source, finds the build fails, and sends an email out. Or the build passes, the CI server generates Javadocs to a known location, runs code quality metrics and builds the report, whatever.

The point of a CI server is to merge developer code early, and often. A local box running Ant is only going to do that if the developer is highly motivated and disciplined. Which developers aren't. "Oh, I forgot to run that particular test suite." "Oh, my code interacts poorly with your code but I hadn't run locally with a completely updated source tree."

Search the web for "continuous integration". *That's* what a CI server does, and it's nothing like what Ant/Maven do.
Thapliyal Akshat
Greenhorn

Joined: Jun 04, 2009
Posts: 29
Hey David,

I really appreciate your explanation. It's good and very informative for those who don't know what CC/CI is.

Small description but comprehensive.

Thanks and Regards,
Akshat
Rajneesh Kumar Rajput
Ranch Hand

Joined: Feb 25, 2009
Posts: 39
Thanks to all of you in participating and providing your valuable thoughts.
really very helpful.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: What is the key difference between Maven and Cruise Control to make a choice of choosing one ?
 
Similar Threads
about continuous integration
using maven release goals in cruisecontrol
cruise control : how to call maven commands from cruise control
Pragmatic Project Automation book - What's it all about?
What Is the Next Marketable Technology To Learn