1 package org.apache.maven.lifecycle.internal;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.maven.plugin.MojoExecution;
23 import org.apache.maven.project.MavenProject;
24
25
26
27
28
29
30
31
32 public class PhaseRecorder
33 {
34 private String lastLifecyclePhase;
35
36 private final MavenProject project;
37
38 public PhaseRecorder( MavenProject project )
39 {
40 this.project = project;
41 }
42
43 public void observeExecution( MojoExecution mojoExecution )
44 {
45 String lifecyclePhase = mojoExecution.getLifecyclePhase();
46
47 if ( lifecyclePhase != null )
48 {
49 if ( lastLifecyclePhase == null )
50 {
51 lastLifecyclePhase = lifecyclePhase;
52 }
53 else if ( !lifecyclePhase.equals( lastLifecyclePhase ) )
54 {
55 project.addLifecyclePhase( lastLifecyclePhase );
56 lastLifecyclePhase = lifecyclePhase;
57 }
58 }
59
60 if ( lastLifecyclePhase != null )
61 {
62 project.addLifecyclePhase( lastLifecyclePhase );
63 }
64 }
65
66 public boolean isDifferentPhase( MojoExecution nextMojoExecution )
67 {
68 String lifecyclePhase = nextMojoExecution.getLifecyclePhase();
69 if ( lifecyclePhase == null )
70 {
71 return lastLifecyclePhase != null;
72 }
73 return !lifecyclePhase.equals( lastLifecyclePhase );
74
75 }
76
77
78 }