Playing with maven release plugin

Using maven release plugin can save you a lot of time, especially if you still manually mange your project versioning. But sometimes it can be pain in the “back”. Simple scenario that occurred at least few times in some of my maven projects:

  1. Project contains at least two separate modules (A & B)
  2. One of this modules (A) is dependant on the other module (B)
  3. While trying to prepare a release (release:prepare) you get missing artefact error which points at second module (B) “Brute force” solution is launching clean install process just after getting missing artefact error and after that resume release prepare process (release:prepare). But since maven release plugin main purpose was cutting down unnecessary manual work like this – solution should be little bit subtle. For example you can change a little bit plugin configuration:
org.apache.maven.plugins
    maven-release-plugin
    2.0

        clean install


Lot of other helpful configuration properties exists, be sure to check

http://maven.apache.org/plugins/maven-release-plugin/prepare-mojo.html

You May Also Like

New HTTP Logger Grails plugin

I've wrote a new Grails plugin - httplogger. It logs:

  • request information (url, headers, cookies, method, body),
  • grails dispatch information (controller, action, parameters),
  • response information (elapsed time and body).

It is mostly useful for logging your REST traffic. Full HTTP web pages can be huge to log and generally waste your space. I suggest to map all of your REST controllers with the same path in UrlMappings, e.g. /rest/ and configure this plugin with this path.

Here is some simple output just to give you a taste of it.

17:16:00,331 INFO  filters.LogRawRequestInfoFilter  - 17:16:00,340 INFO  filters.LogRawRequestInfoFilter  - 17:16:00,342 INFO  filters.LogGrailsUrlsInfoFilter  - 17:16:00,731 INFO  filters.LogOutputResponseFilter  - >> #1 returned 200, took 405 ms.
17:16:00,745 INFO filters.LogOutputResponseFilter - >> #1 responded with '{count:0}'
17:18:55,799 INFO  filters.LogRawRequestInfoFilter  - 17:18:55,799 INFO  filters.LogRawRequestInfoFilter  - 17:18:55,800 INFO  filters.LogRawRequestInfoFilter  - 17:18:55,801 INFO  filters.LogOutputResponseFilter  - >> #2 returned 404, took 3 ms.
17:18:55,802 INFO filters.LogOutputResponseFilter - >> #2 responded with ''

Official plugin information can be found on Grails plugins website here: http://grails.org/plugins/httplogger or you can browse code on github: TouK/grails-httplogger.