Maven: How do I activate a profile from command line?

后端 未结 4 1573
梦谈多话
梦谈多话 2020-12-25 09:28

This is a snippet from my pom.xml. I tried the following, but the profile was not activated.

mvn clean install -Pdev1
mvn clean install -P dev1
相关标签:
4条回答
  • 2020-12-25 09:50

    Just remove activation section, I don't know why -Pdev1 doesn't override default false activation. But if you omit this:

    <activation> <activeByDefault>false</activeByDefault> </activation>

    then your profile will be activated only after explicit declaration as -Pdev1

    0 讨论(0)
  • 2020-12-25 09:58

    Activation by system properties can be done as follows

    <activation>
        <property>
            <name>foo</name>
            <value>bar</value>
        </property>
    </activation>
    

    And run the mvn build with -D to set system property

    mvn clean install -Dfoo=bar
    

    This method also helps select profiles in transitive dependency of project artifacts.

    0 讨论(0)
  • 2020-12-25 10:08

    Both commands are correct :

    mvn clean install -Pdev1
    mvn clean install -P dev1
    

    The problem is most likely not profile activation, but the profile not accomplishing what you expect it to.

    It is normal that the command :

    mvn help:active-profiles
    

    does not display the profile, because is does not contain -Pdev1. You could add it to make the profile appear, but it would be pointless because you would be testing maven itself.

    What you should do is check the profile behavior by doing the following :

    1. set activeByDefault to true in the profile configuration,
    2. run mvn help:active-profiles (to make sure it is effectively activated even without -Pdev1),
    3. run mvn install.

    It should give the same results as before, and therefore confirm that the problem is the profile not doing what you expect.

    0 讨论(0)
  • 2020-12-25 10:08

    I have encountered this problem and i solved mentioned problem by adding -DprofileIdEnabled=true parameter while running mvn cli command.

    Please run your mvn cli command as : mvn clean install -Pdev1 -DprofileIdEnabled=true.

    In addition to this solution, you don't need to remove activeByDefault settings in your POM mentioned as previouses answer.

    I hope this answer solve your problem.

    0 讨论(0)
提交回复
热议问题