[
https://jira.codehaus.org/browse/MNG-5490?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=339901#comment-339901
]
Gregory Baumgardner commented on MNG-5490:
------------------------------------------
Ok, let me break it down simply. You can do write two separate profiles with
two separate executions to do a common task that is to be done for both clean
and default lifecycles. In my case, I am running an Ant script to run some
pre-script and set properties. One execution of the antrun plugin is bound to
initialize phase, and the other is in pre-clean. This works fine, but it would
be so much nicer to only define one single profile with one single execution
that is bound to a variable phase controlled by a property, like ${init-phase}
shown above. I have this working, but you must set the init-phase property
differently, depending on whether the lifecycle is clean or the default. This
is, as far as I can tell, impossible in the POM. So, it would be cool to have
an <activation> option to specify the lifecycle, in order to define two extra
profiles whose purpose is to set the property.
> Add support for "lifecycle" activation for profiles
> ---------------------------------------------------
>
> Key: MNG-5490
> URL: https://jira.codehaus.org/browse/MNG-5490
> Project: Maven 2 & 3
> Issue Type: Improvement
> Components: Profiles
> Affects Versions: 2.2.1
> Environment: Windows 7
> Reporter: Gregory Baumgardner
> Priority: Minor
>
> I have the following scenario: Initialization step is done in the default
> lifecycle "initialize" phase which sets properties that are used in later
> build phases. Unfortunately, the same properties need set in the "clean"
> lifecycle in order to use them in the clean phase. There is no way to easily
> run the same execution of plugins without duplication. However, it turns out
> very easy to manipulate the phase attribute in the following way:
> <profile>
> <id>default-phase</id>
> <activation>
> <property>
> <name>!clean-all</name>
> </property>
> </activation>
> <properties>
> <init-phase>initialize</init-phase>
> </properties>
> </profile>
> <profile>
> <id>clean-phase</id>
> <activation>
> <property>
> <name>clean-all</name>
> </property>
> </activation>
> <properties>
> <init-phase>pre-clean</init-phase>
> </properties>
> </profile>
> <profile>
> <id>plugin-config</id>
> <activation>
> <property>
> <name>java.version</name> <!-- Always on -->
> </property>
> </activation>
> <build>
> <plugins>
> <plugin>
> ... <!-- Whatever plugin -->
> <executions>
> <execution>
> <id>initialize properties</id>
> <goals><goal><!--The goal --></goal></goals>
> <phase>${init-phase}</phase>
> <configuration>
> <!-- The plugin config to use -->
> </configuration>
> </execution>
> </executions>
> </plugin>
> ...
> </plugins>
> </build>
> </profile>
> This will run the initialize step under initialize phase for default
> lifecycle and under pre-clean phase for clean lifecycle provided that the
> config information falls after the property set in a profile. However, the
> one issue I have with this is that it requires you to run Maven with
> -Dclean-all property on the command line. It would be even better if there
> was an activation for <lifecycle> that could be set to "default", "clean",
> "site", etc. Then, the activation can occur when that specific lifecycle is
> invoked during the build. As far as I can tell, there is no other way to
> determine this information.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira