1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.plugins.release;
20
21 import org.apache.maven.plugin.MojoExecutionException;
22 import org.apache.maven.plugin.MojoFailureException;
23 import org.apache.maven.plugins.annotations.Mojo;
24 import org.apache.maven.plugins.annotations.Parameter;
25 import org.apache.maven.shared.release.DefaultReleaseManagerListener;
26 import org.apache.maven.shared.release.ReleaseExecutionException;
27 import org.apache.maven.shared.release.ReleaseFailureException;
28 import org.apache.maven.shared.release.ReleaseRollbackRequest;
29 import org.apache.maven.shared.release.config.ReleaseDescriptorBuilder;
30
31
32
33
34
35
36
37
38
39
40 @Mojo(name = "rollback", aggregator = true)
41 public class RollbackReleaseMojo extends AbstractScmReleaseMojo {
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59 @Parameter(
60 defaultValue = "@{prefix} rollback the release of @{releaseLabel}",
61 property = "scmRollbackCommitComment")
62 private String scmRollbackCommitComment = "@{prefix} rollback the release of @{releaseLabel}";
63
64 @Override
65 public void execute() throws MojoExecutionException, MojoFailureException {
66 super.execute();
67
68 final ReleaseDescriptorBuilder config = createReleaseDescriptor();
69 config.setScmRollbackCommitComment(scmRollbackCommitComment);
70
71 try {
72 ReleaseRollbackRequest rollbackRequest = new ReleaseRollbackRequest();
73 rollbackRequest.setReleaseDescriptorBuilder(config);
74 rollbackRequest.setReleaseEnvironment(getReleaseEnvironment());
75 rollbackRequest.setReactorProjects(getReactorProjects());
76 rollbackRequest.setReleaseManagerListener(new DefaultReleaseManagerListener(getLog()));
77
78 releaseManager.rollback(rollbackRequest);
79 } catch (ReleaseExecutionException e) {
80 throw new MojoExecutionException(e.getMessage(), e);
81 } catch (ReleaseFailureException e) {
82 throw new MojoFailureException(e.getMessage(), e);
83 }
84 }
85 }