Win a copy of Five Lines of Code this week in the OO, Patterns, UML and Refactoring forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Bear Bibeault
  • Ron McLeod
  • Jeanne Boyarsky
  • Paul Clapham
Sheriffs:
  • Tim Cooke
  • Liutauras Vilda
  • Junilu Lacar
Saloon Keepers:
  • Tim Moores
  • Stephan van Hulst
  • Tim Holloway
  • fred rosenberger
  • salvin francis
Bartenders:
  • Piet Souris
  • Frits Walraven
  • Carey Brown

Do Java professionals really need to use build tools?

 
Ranch Hand
Posts: 96
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi all,

I would like to know if a Java professional really need to study and use build tools such as Ant?
Because when we work with Eclipse, Eclipse automatically build the project for us and we do not need to write our own build file.

Thanks for your comment.
 
author & internet detective
Posts: 40035
809
Eclipse IDE VI Editor Java
  • Likes 2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Yes. Build automation is so much more than compiling. Software going to production needs to be repeatable. Many teams run more than just a compile in their build. The IDE isn't going to compile, run your unit tests, run coding standards and tag your software in one step.
 
Marshal
Posts: 67418
173
Mac Mac OS X IntelliJ IDE jQuery Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Or copying, or filtering...
 
Swerrgy Smith
Ranch Hand
Posts: 96
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Jeanne Boyarsky wrote:Yes. Build automation is so much more than compiling. Software going to production needs to be repeatable. Many teams run more than just a compile in their build. The IDE isn't going to compile, run your unit tests, run coding standards and tag your software in one step.



Thanks for your comment.
What build tool is the most widely used tool? Should I learn Ant or Maven or both?
What book can you recommend me to read?

Thank you very much.
 
Saloon Keeper
Posts: 22260
151
Android Eclipse IDE Tomcat Server Redhat Java Linux
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Swerrgy Smith wrote:Hi all,

I would like to know if a Java professional really need to study and use build tools such as Ant?
Because when we work with Eclipse, Eclipse automatically build the project for us and we do not need to write our own build file.

Thanks for your comment.



It wasn't until systems like Ant and Maven were created and integrated into IDEs that I stopped being routinely clobbered at unfortunate times as a result of being held hostage by IDEs. Back when I was doing C/Visual Studio, there was nothing more fearful than a "1-line fix" that had to be done in 5 minutes or less. I don't think I ever quite had to drag out an old version of an OS, install and patch it, install and patch and IDE and compiler and only then be able to do the fix, but it got terrifyingly close more than once.

IDEs are typically heavily customized. To company standards, department standards, and personal standards. The more the build process depends on an IDE, the more likely that it's going to end up tied to some of those personal choices. Officially, one shop I worked at was supposed to have all departments working with their in-house-developed ORM. In practice, only one group had IDEs whose configurations could build using that ORM. We ended up using a commercial product.

Ant isn't immune to desktop customizations, but is less so. Maven was specifically designed in a way that rejects desktop customizations to the build environment. You can do it, but only by seriously warping the build process. A typical Maven project can be shipped to a completely foreign shop on the other side of the planet and still build. Even if they are using IntelliJ instead of Eclipse.

Also, sometimes production builds are done on non-GUI machines. A lot of shops, in fact, even do automated overnight builds on a central server. GUIs are not good for automated processes. They're designed primarily for interactive ones.

Finally, it's difficult to impossible to build many complex application packages solely via an IDE.


Returning to my original contention that in an emergency, you don't want to have to set up and fight a lot of complex support software, I can install and run Ant or Maven in 15 minutes or less. I just discovered that Eclipse Kepler has been released and I'm wondering when I'll be able to schedule enough time to upgrade it.

Virtually all of my projects are developed and debugged using IDEs these days. And virtually all of the Java ones also have an Ant or Maven build profile attached to them. I just put a major webapp into production this morning. I built it on the system that contains my IDE, but the app itself was built using Maven.
 
Jeanne Boyarsky
author & internet detective
Posts: 40035
809
Eclipse IDE VI Editor Java
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Ant and Maven are both in wide use. I use both and don't have an opinion on which to learn first. In many ways Maven is easier to start with because of the defaults. Ultimately it matters which will be used on your project.

"Ant in Action" is a great book. To get an overview and get started, you could look at the Ant manual online. You really don't need a book until you get to doing something more complex.

For Maven, Better Builds with Maven is old but really good. And it is free.
 
Rancher
Posts: 2759
32
Eclipse IDE Spring Tomcat Server
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
If you have a choice, I would recommend that you learn Maven first, simply because a lot of open source projects are moving into Maven, and learning Maven will let you start playing with them faster. Of course, if you already have a project picked out that uses Ant, learn Ant first
 
Enthuware Software Support
Posts: 4448
41
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I love Maven. Ant seems so assembly now But yes, one should have a good understanding of Ant as well as Maven.

Although I haven't personally worked on it but it seems Gradle is getting a lot of traction these days. Some popular projects such as Hibernate seem to have moved from Maven to Gradle.

One good thing with Maven is that pretty much all IDEs support it. So in our team we have people using their favorite IDEs.
 
Sheriff
Posts: 15760
264
Mac Android IntelliJ IDE Eclipse IDE Spring Debian Java Ubuntu Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Paul Anilprem wrote:I love Maven.


I use Maven on my projects at work and it helps me get my job done, for which I have a lot of appreciation for the folks who created it. I wouldn't go as far as to say that I love it though. I agree that there does appear to be some movement away from Maven toward similar tools that are ostensibly "simpler" and more flexible to use, Gradle in particular, but you also have others like Ivy and Buildr. I guess each has its own strengths and weaknesses but the telling thing for me is that these newer tools are still being compared to Maven. I tend to lag behind on the adoption curve when it comes to tools for the work place so until I get a sense that a build tool other than Maven is being used as the basis for comparison, I'll probably stick with Maven for now.
 
Jeanne Boyarsky
author & internet detective
Posts: 40035
809
Eclipse IDE VI Editor Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I thought Ivy wasn't a build tool? I thought it was only for dependency management.
 
Junilu Lacar
Sheriff
Posts: 15760
264
Mac Android IntelliJ IDE Eclipse IDE Spring Debian Java Ubuntu Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Jeanne Boyarsky wrote:I thought Ivy wasn't a build tool? I thought it was only for dependency management.



You're right. I should have said Ant+Ivy for closer equivalency to Maven.
    Bookmark Topic Watch Topic
  • New Topic