简体   繁体   中英

How to activate maven profile from command line (to build subsystem)

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,
eg 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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM