1 package org.apache.maven.plugins.release;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.io.File;
23
24 import org.apache.maven.plugin.MojoExecutionException;
25 import org.apache.maven.plugin.MojoFailureException;
26 import org.apache.maven.plugins.annotations.Mojo;
27 import org.apache.maven.plugins.annotations.Parameter;
28 import org.apache.maven.shared.release.ReleaseExecutionException;
29 import org.apache.maven.shared.release.ReleaseFailureException;
30 import org.apache.maven.shared.release.ReleasePerformRequest;
31 import org.apache.maven.shared.release.config.ReleaseDescriptor;
32 import org.codehaus.plexus.util.StringUtils;
33
34
35
36
37
38
39
40
41
42
43 @Mojo( name = "perform", aggregator = true, requiresProject = false )
44 public class PerformReleaseMojo
45 extends AbstractReleaseMojo
46 {
47
48
49
50
51 @Parameter( property = "goals" )
52 private String goals;
53
54
55
56
57
58
59 @Parameter( property = "releaseProfiles" )
60 private String releaseProfiles;
61
62
63
64
65 @Parameter( defaultValue = "${project.build.directory}/checkout", property = "workingDirectory", required = true )
66 private File workingDirectory;
67
68
69
70
71
72 @Parameter( property = "connectionUrl" )
73 private String connectionUrl;
74
75
76
77
78
79
80
81
82
83
84 @Parameter( defaultValue = "false", property = "localCheckout" )
85 private boolean localCheckout;
86
87
88
89
90
91
92 @Parameter( defaultValue = "true", property = "useReleaseProfile" )
93 private boolean useReleaseProfile;
94
95
96
97
98
99 @Parameter( defaultValue = "false", property = "dryRun" )
100 private boolean dryRun;
101
102
103
104
105 protected String getAdditionalProfiles()
106 {
107 return releaseProfiles;
108 }
109
110
111
112
113 public void execute()
114 throws MojoExecutionException, MojoFailureException
115 {
116
117
118 if ( goals != null )
119 {
120 goals = StringUtils.join( StringUtils.split( goals ), " " );
121 }
122
123 try
124 {
125
126 ReleaseDescriptor releaseDescriptor = createReleaseDescriptor();
127 if ( connectionUrl != null )
128 {
129 releaseDescriptor.setScmSourceUrl( connectionUrl );
130 }
131 releaseDescriptor.setLocalCheckout( localCheckout );
132
133 releaseDescriptor.setCheckoutDirectory( workingDirectory.getAbsolutePath() );
134 releaseDescriptor.setUseReleaseProfile( useReleaseProfile );
135
136 if ( goals == null )
137 {
138
139 goals = "deploy";
140 if ( project.getDistributionManagement() != null
141 && project.getDistributionManagement().getSite() != null )
142 {
143 goals += " site-deploy";
144 }
145 }
146 releaseDescriptor.setPerformGoals( goals );
147
148 ReleasePerformRequest performRequest = new ReleasePerformRequest();
149 performRequest.setReleaseDescriptor( releaseDescriptor );
150 performRequest.setReleaseEnvironment( getReleaseEnvironment() );
151 performRequest.setReactorProjects( getReactorProjects() );
152 performRequest.setDryRun( dryRun );
153
154 releaseManager.perform( performRequest );
155 }
156 catch ( ReleaseExecutionException e )
157 {
158 throw new MojoExecutionException( e.getMessage(), e );
159 }
160 catch ( ReleaseFailureException e )
161 {
162 throw new MojoFailureException( e.getMessage(), e );
163 }
164 }
165 }