Maven Mixins


While I’m generally a fan of Maven, it is true that the pom.xml files can become a little unwieldy. Since Maven 4.0 (with long hoped-for mixins) still seems to be a way off, I decided to create some maven mixins using Ohad David’s maven-mixin-plugin.

I’ve ended up with the following maven mixins:

Module Description Applicable for…​

static analysis

Maven mixin providing the ability to run various static analysis plugins (checkstyle, pmd, findbugs, javancss, jdepend)

Applicable for any Java application.

cucumber reporting

Maven mixin that configures cucumber reporting plugin for BDD specs.

Applicable for any Java application that uses Cucumber BDD specs

datanucleus enhance

A maven mixin that provides datanucleus:enhance plugin (for JDO entities of DN modules)

Applicable for Java applications that use DataNucleus for persistence (including, of course, Apache Isis applications).

enforcer relaxed

Maven mixin that applies the maven enforcer plugin (but with relaxed dependency convergence)

Applicable for any Java application.

isis jrebel

Maven mixin providing the ability to run an Apache Isis application under JRebel.

Applicable for Apache Isis applications only; requires a JRebel license.

isis swagger

Maven mixin providing the ability to run isis:swagger goal for an Apache Isis domain application

Applicable for Apache Isis applications that use the Restful Objects viewer to automatically expose a REST API.

isis validate

Configures the Apache Isis maven plugin to run the validate goal for a domain object model.

Applicable for Apache Isis applications only.

jetty console

Maven mixin to configure jetty-console plugin (to create a standalone version of a webapp)

Applicable for any Java web application.

jetty war

Maven mixin to package up a webapp as a WAR file, and to allow the webapp to be run using the jetty maven plugin

Applicable for any Java web application.

source and javadoc

Maven mixin providing the ability to run source, javadoc and jxr plugins

Applicable for any Java application.

standard

Maven mixin for the "standard" set of plugins.

Applicable for any Java application.

surefire

Configuration to run surefire plugin for unit, integration and (Cucumber) BDD specs.

Applicable for any Java application. Uses naming conventions to distinguish between different types of tests

While I was at it, I also created some modules to aggregate together common Maven dependencies:

Module Description Applicable for…​

isis webapp

Convenience maven pom to aggregate maven dependencies for running Apache Isis webapps

Applicable for Apache Isis applications only.

isis intellij

Convenience maven pom for running Apache Isis applications from within IntelliJ IDE

Applicable for Apache Isis applications only.

isis testing

Convenience maven pom to aggregate maven dependencies for testing Apache Isis applications

Applicable for Apache Isis applications only.

See the README for each of the corresponding git repos for details on how to configure.

November 24, 2016 maven apache-isis modular