How do I exclude certain modules from a Maven build using the commandline

As Yogesh_D wrote it can be done with the -pl argument with maven 3.2.1+

Here's an example:

> mvn clean install -amd -pl !module,!module/submodule

You need to list every sub-module (and sub-sub-module etc) manually, it does not exclude them recursively. Use the slash for package separation. It's the folder path, not the group or artifact id.


Maven 3.2.1 has added this feature, you can use to specify the exact projects you want (or to exclude the projects you don't want) -pl or --projects Here's how to exclude two:

-pl "!<modulename>,!<modulename2>"

for exclude certain modules. This can be comma separated list of values that you want to include/exclude.

Update For windows user following

> mvn clean [package|install] --projects \!groupId:artifactId

I don't believe this is currently possible from the command line. There is an open feature request in maven3 for this very thing (https://issues.apache.org/jira/browse/MNG-5230).

Looks like your only option at this point is to modify the pom and create a new build profile that includes only the modules you want to build.


Another comment on the accepted answer, don't forget to escape the exclamation sign when running the command in bash:

> mvn clean install -pl \!module,\!module/submodule,\!groupId:artifactId