I have a Maven project https://github.com/paulvi/MavenMultiModule1
with root pom.xml as
<modules>
<module>MavenModule1</module>
<module>MavenModule2</module>
</modules>
<properties>
</properties>
<profiles>
<profile>
<id>p1</id>
<modules>
<module>MavenModule1</module>
</modules>
</profile>
<profile>
<id>p2</id>
<modules>
<module>MavenModule2</module>
</modules>
</profile>
</profiles>
I would like to be able to build subsystem separately,
e.g. mvn package -P p1
and mvn package -P p2
Both profiles are visible but can't be activated with -P
switch
mvn help:all-profiles -P p1
That work with other project
What is missing here to activate profile or what is better way to build subsystem?
I have read How to activate a Maven profile in a dependent module?
your problem is that by declaring
<modules>
<module>MavenModule1</module>
<module>MavenModule2</module>
</modules>
Those are always built. Just delete your first 4 lines and it will work as expected.
Now you can build MavenModule1 by typing:
-P p1
Both by typing:
-P p1,p2
and so forth.
You don't need profiles to build specific module, use -pl
flag instead.
http://books.sonatype.com/mvnref-book/reference/_using_advanced_reactor_options.html
You should remove that space and it should work fine.
use
mvn package -Pp1
来源:https://stackoverflow.com/questions/31657318/how-to-activate-maven-profile-from-command-line-to-build-subsystem