Hi,

I'm looking for how to resolve issues connected with the feature
installAtEnd / deployAtEnd of install and deploy plugins.

We have a similar feature in clean plugin where it is implemented by
wrapping session.getRequest().getExecutionListener() [1]
Because ExecutionListener on request is not chained by default it will be
difficult implement the next wrappers in two plugins.

In current implementation we assume that install or deploy plugins are
executed  in all modules,
but it can not be true e.g. one module can use different packaging
which doesn't have those plugins in their lifecycle
so detecting the last executing module does not work.

We can also have skipped or not used install / deploy plugins in the last
executed module.

I'm thinking of using AbstractMavenLifecycleParticipant to detect the end
of a Maven session and to finish the job in  afterSessionEnd callback.

But in this way I see another issue -
AbstractMavenLifecycleParticipant.afterSessionEnd method is called after
session.request.ExecutionListene which prints a summary of whole build,
so we have additional tasks not computed in the build summary - Can it be
accepted?

I don't have a sure which callback method will be called first from install
or from deploy plugin.
So we can have a situation where deployment will be executed first.
Can it be accepted?

Of course when we will use the AbstractMavenLifecycleParticipant plugin
must be configured as an extension - but it is not an issue I think.

Any other suggestions ...

Some of related issues:
https://issues.apache.org/jira/browse/MINSTALL-102
https://issues.apache.org/jira/browse/MDEPLOY-226

[1]
https://github.com/apache/maven-clean-plugin/blob/master/src/main/java/org/apache/maven/plugins/clean/Cleaner.java#L514-L527

-- 
Sławomir Jaranowski

Reply via email to