How do I exclude certain modules from a Maven build using the commandline
Is there a way to exclude some modules from a big reactor build, similar to -pl ?
Here are a number of ways to do it persistently:
How to exclude a module from a Maven reactor build?
I want to do it from shell, or at least without modifying the poms, which I am not allowed to change.
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
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
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.