I have a multi-module maven project.
To build the parent alone, I run mvn package -N
(where -N
is "non-recursive").
To build a few modules, I run mvn package -pl api,servie
(where -pl
is "projects").
How do I combine these two in order to build the api, service and the parent?
A multi-module project is built from an aggregator POM that manages a group of submodules. In most cases, the aggregator is located in the project's root directory and must have packaging of type pom. The submodules are regular Maven projects, and they can be built separately or through the aggregator POM.
Maven version 3.2. 1 added this feature, you can use the -pl switch (shortcut for --projects list) with ! or - (source) to exclude certain submodules. Be careful in bash the character ! is a special character, so you either have to single quote it (like I did) or escape it with the backslash character.
mvn package -pl api,service --also-make
(where --also-make
makes the dependencies as well)
How about mvn package -pl api,service,.
('.' indicating the project in the current directory) or mvn package -pl api,service,:parent
(where "parent" is the artifactId of the parent module).
Arguments to -pl
can either be the relative path to a directory containing a maven module or a coordinate in the form [groupId]:artifactId
of a module in the current project. If no groupId is supplied, the groupId of the pom being built is used.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With