Matt RaibleMatt Raible is a Web Developer and Java Champion. Connect with him on LinkedIn.

The Angular Mini-Book The Angular Mini-Book is a guide to getting started with Angular. You'll learn how to develop a bare-bones application, test it, and deploy it. Then you'll move on to adding Bootstrap, Angular Material, continuous integration, and authentication.

Spring Boot is a popular framework for building REST APIs. You'll learn how to integrate Angular with Spring Boot and use security best practices like HTTPS and a content security policy.

For book updates, follow @angular_book on Twitter.

The JHipster Mini-Book The JHipster Mini-Book is a guide to getting started with hip technologies today: Angular, Bootstrap, and Spring Boot. All of these frameworks are wrapped up in an easy-to-use project called JHipster.

This book shows you how to build an app with JHipster, and guides you through the plethora of tools, techniques and options you can use. Furthermore, it explains the UI and API building blocks so you understand the underpinnings of your great application.

For book updates, follow @jhipster-book on Twitter.

10+ YEARS


Over 10 years ago, I wrote my first blog post. Since then, I've authored books, had kids, traveled the world, found Trish and blogged about it all.

Continuum, Luntbuild, Pulse and NetBeans

Last night, I did a bit of playing with technologies new to me. First of all, I got AppFuse 2.0 running on Continuum. This was was easy enough, I just had to add <scm> information to each pom.xml. Thanks to those who recommended this approach. I thought it was a silly solution until I realized "mvn site" produced the wrong information when <scm> wasn't present for sub-modules.

Since I was playing with Continuous Integration tools, I decided to give Cerberus, LuntBuild, and Pulse a spin. My goal was to give each server the old "college try" and see if I could get them running with minimal effort. I don't know where I heard about Pulse, but it was somehow included in my tests.

Cerberus didn't work with my Cygwin/Ruby setup, so I was done with it quickly. LuntBuild worked pretty well, but the interface and configuration seemed kinda clunky. I also found it strange that it uses a 4.x version of Jetty - seems kinda old. I was surprised to see that it uses Tapestry for its web framework. Pulse was the nicest one with a kick-ass (ajaxified) user inferface, powered by Acegi, WebWork and Hibernate (according to its JARs). It was definitely the easiest to setup and use. While Pulse isn't free for commercial use, it is free for open source projects, as well as small teams.

Summary: Continuum, LuntBuild and Pulse seem to be the best tools for building Maven 2 projects. While CruiseControl works, and works well, it does require you to customize XML from the command line, whereas these tools allow you to do everything through a web interface.

Toward the end of the night, I downloaded NetBeans 5.5 and installed its Maven 2 Plugin. I was surprised at how full-featured this plugin is. I was able to build, test and run the AppFuse web modules in the embedded Tomcat without issues. It's definitely a cool plugin. As for NetBeans, it seemed pretty sluggish and I couldn't figure out how to get Ctrl+Shift+R functionality, which is a must for me these days. Also, I couldn't get the JSF support working for the AppFuse JSF Module, seemingly caused by the Maven plugin (project properties only has Maven options). Since NetBeans works so well with Maven 2, and it's much more full-featured than Eclipse, it seems natural to recommend it to AppFuse 2 users. Of course, I like IDEA a lot more, but there's no Maven 2 plugin that I know of.

Posted in Java at Nov 03 2006, 10:31:19 AM MST 17 Comments
Comments:

There is a new plugin for maven2 that you can download for intellij. Just came out a few days ago. I think the plugin is a result of the jetbrains plugin contest.

Posted by Chris Mercer on November 03, 2006 at 05:47 PM MST #

I was also pretty excited by Continuum until we got blocked by defect 587 / 628 / 725 (which causes Continuum to be unable to access a POM from an authenticated Subversion repository). This might not seem like a big deal, but the workarounds (write a shell script to pull the source and perform the build, disable authentication in the SVN repository, etc.) aren't very palatable. Unfortunately the Continuum team appear unable or unwilling to acknowledge the issue, which is strange given how many different people have reported it across a number of versions of Continuum. Cheers, Peter

Posted by Peter Monks on November 03, 2006 at 06:28 PM MST #

Matt, You might want to give our Parabuild a try. It should work with Maven and Cygwin just fine. It's free for open source projects as well. Please let me know if you have any questions. Regards, Slava Imeshev

Posted by Slava Imeshev on November 03, 2006 at 07:17 PM MST #

Slava - looks like Parabuild fails the 10 minute test:

No suitable Java Virtual Machine could be found on your system.
The version of the JVM must be at least 1.4.2 and at most 1.4.2.
Sure, I could revert to 1.4.2, but isn't JDK 5 backwards compatible? ;-)

Posted by Matt Raible on November 03, 2006 at 08:09 PM MST #

BTW, for the 'AppFuse Tapestry Module' subproject, nbtapestrysupport can be helpful.

Posted by Andreas Andreou on November 04, 2006 at 09:57 AM MST #

Matt, thanks for giving Luntbuild a try 8-). As one Coloradoan to other (I live in Breckenridge), I would appreciate if you give me more details about what bothered you the most about Luntbuild UI and configuration. I am in process of redesigning the UI and would appreciate any feedback you can give me. Also, there is pro version called Quickbuild, which is also free for open source project. You can run online demo here.

Posted by Lubos Pochman on November 04, 2006 at 02:30 PM MST #

Peter, have you tried providing the pom urls as follwoing in continuum: http://<username>:<password>@myrepostrunk/pom.xml works for me.

Posted by Sanjiv Jivan on November 05, 2006 at 07:48 AM MST #

Hi Matt,

Thanks for giving Pulse a try, and thanks even more for the kind words. We focus a lot on the ease of setup/administration, so I'm glad it worked well for you! If you're interested in an open source license for AppFuse, give us a yell.

P.S. maybe you heard about Pulse via my comment re: Confluence vs Docbook? Either that, or our subliminal marketing campaign is working ;).

Posted by Jason Sankey on November 05, 2006 at 11:58 AM MST #

Maybe this is a repost, but here's a list of Continuous Integration tools with their different capabilities.

Posted by Peter Schneider-Manzell on November 06, 2006 at 07:14 AM MST #

I have build a monitoring and configuration tool called cc-config found on Sourceforge at http://cc-config.sf.net that allows you to monitor one or more cruisecontrol servers as well as configure the server projects in a Swing Gui instead of working with xml configuration files. You may wish to give it a try.

Posted by Allan Wick on November 07, 2006 at 04:03 AM MST #

try this plugin to searching resources in individual workspace http://www.muermann.org/gotofile/

Posted by Mittal on November 21, 2006 at 09:00 PM MST #

Hey Matt, Now that the intellij maven2 plugin exists, would you still recommend netbeans to appfuse 2 users? I've looked at the maven2 plugin for intellij and I've noticed that it does a great job of allowing me to run goals from intellij. The problem is that it doesn't allow me to add dependencies like the eclipse maven2 plugin does. The problem with the eclipse one is that it does not seem to respect my settings.xml file. Maybe I'm missing something here but how can a maven plugin exist that does not use the settings.xml file? Anyway, tomorrow I'll check out netbeans 5.5 and see what it can do. I need to specify what ide we want all of our developers to use. We are definitely going with Maven2 and appfuse2. I just need the best ide to complement those two. so far i like intellij best. thanks Rick

Posted by Rick Marry on December 05, 2006 at 02:28 AM MST #

Maybe you can give Hudson (https://hudson.dev.java.net/) a try. Easy setup, simple to work with.

Posted by erwin on February 27, 2007 at 10:53 AM MST #

Erwin, I agree that Hudson looks nice. For the client I'm working with now, I did a couple of hours worth of research on continuous integration servers yesterday, including Continuum, Hudson and Intellij's Team City. Below is what I wrote up after my research. Please keep in mind my two criteria were 1) Maven 2 support and 2) Trac integration.

----

The UI for Continuum is not very intuitive and clunky. It reminds me largely of Scarab (the bug tracker from Tigris). Hudson has a nice UI and works well, but its Maven 2 support is alpha and it doesn't seem to support running Ant Tasks very well. Team City failed my "10 minute" test miserably and I couldn't figure out how to make its "agents" work, which seem to be needed to run builds.

I still like CruiseControl, but that's likely because I've spent so much time learning it over the last couple of years. Hudson will likely be excellent once it has good Maven 2 support.

CruiseControl and Continuum both have Trac integration, so they're the front runners. Because you've had issues with CruiseControl in the past, it's probably best to go with Continuum. Unfortunately, its Trac integration looks to be pretty alpha quality (I haven't installedit, just guessing by the fact that it hasn't had a release).

If you're willing to spend the money, Pulse and Bamboo are excellent, but they're right around $1000 per server. Neither has Trac integration AFAIK.

Posted by Matt Raible on February 27, 2007 at 02:20 PM MST #

This is priceless, thanks a lot for taking your time and writing this down :)

Posted by Siarhei on April 03, 2007 at 08:10 PM MDT #

From my limited experience, Hudson simply "Just works" and is very easy to work. If you have simple requirements, try Hudson. (It is really nice after trying cruise control and anthill).

Posted by Jacob on April 11, 2007 at 02:27 PM MDT #

I'm curious what you would think about scalability of these solutions. I'm guessing you've mostly tried them with smaller projects? Assume you are dealing with say 50 projects with complex dependencies between them. Over time the dependencies may change. In addition, in my case each of the projects is an eclipse plugin. Would this change which ones you'd favour?

Posted by Mark on August 06, 2007 at 12:49 AM MDT #

Post a Comment:
  • HTML Syntax: Allowed