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 javax.inject.Inject;
22
23 import org.apache.maven.plugin.MojoExecutionException;
24 import org.apache.maven.plugin.MojoFailureException;
25 import org.apache.maven.plugins.annotations.Mojo;
26 import org.apache.maven.plugins.annotations.Parameter;
27 import org.apache.maven.scm.manager.ScmManager;
28 import org.apache.maven.shared.release.DefaultReleaseManagerListener;
29 import org.apache.maven.shared.release.ReleaseExecutionException;
30 import org.apache.maven.shared.release.ReleaseFailureException;
31 import org.apache.maven.shared.release.ReleaseManager;
32 import org.apache.maven.shared.release.ReleaseRollbackRequest;
33 import org.apache.maven.shared.release.config.ReleaseDescriptorBuilder;
34
35
36
37
38
39
40
41
42
43
44 @Mojo(name = "rollback", aggregator = true)
45 public class RollbackReleaseMojo extends AbstractScmReadWriteReleaseMojo {
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63 @Parameter(
64 defaultValue = "@{prefix} rollback the release of @{releaseLabel}",
65 property = "scmRollbackCommitComment")
66 private String scmRollbackCommitComment = "@{prefix} rollback the release of @{releaseLabel}";
67
68 @Inject
69 public RollbackReleaseMojo(ReleaseManager releaseManager, ScmManager scmManager) {
70 super(releaseManager, scmManager);
71 }
72
73 @Override
74 public void execute() throws MojoExecutionException, MojoFailureException {
75 super.execute();
76
77 final ReleaseDescriptorBuilder config = createReleaseDescriptor();
78 config.setScmRollbackCommitComment(scmRollbackCommitComment);
79
80 try {
81 ReleaseRollbackRequest rollbackRequest = new ReleaseRollbackRequest();
82 rollbackRequest.setReleaseDescriptorBuilder(config);
83 rollbackRequest.setReleaseEnvironment(getReleaseEnvironment());
84 rollbackRequest.setReactorProjects(getReactorProjects());
85 rollbackRequest.setReleaseManagerListener(new DefaultReleaseManagerListener(getLog()));
86
87 releaseManager.rollback(rollbackRequest);
88 } catch (ReleaseExecutionException e) {
89 throw new MojoExecutionException(e.getMessage(), e);
90 } catch (ReleaseFailureException e) {
91 throw new MojoFailureException(e.getMessage(), e);
92 }
93 }
94 }