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

时光怂恿深爱的人放手 提交于 2019-12-07 15:41:20

问题


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 p1and 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?


回答1:


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.




回答2:


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




回答3:


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!