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.artifact.ArtifactUtils;
22 import org.apache.maven.plugin.MojoExecutionException;
23 import org.apache.maven.plugin.MojoFailureException;
24 import org.apache.maven.plugins.annotations.Mojo;
25 import org.apache.maven.plugins.annotations.Parameter;
26 import org.apache.maven.shared.release.DefaultReleaseManagerListener;
27 import org.apache.maven.shared.release.ReleaseExecutionException;
28 import org.apache.maven.shared.release.ReleaseFailureException;
29 import org.apache.maven.shared.release.ReleaseUpdateVersionsRequest;
30 import org.apache.maven.shared.release.config.ReleaseDescriptorBuilder;
31 import org.codehaus.plexus.configuration.PlexusConfiguration;
32
33
34
35
36
37
38
39
40
41
42 @Mojo(name = "update-versions", aggregator = true)
43 public class UpdateVersionsMojo extends AbstractReleaseMojo {
44
45
46
47
48
49
50
51 @Parameter(defaultValue = "false", property = "autoVersionSubmodules")
52 private boolean autoVersionSubmodules;
53
54
55
56
57
58
59 @Parameter(defaultValue = "true", property = "addSchema")
60 private boolean addSchema;
61
62
63
64
65
66
67 @Parameter(property = "developmentVersion")
68 private String developmentVersion;
69
70
71
72
73
74
75 @Parameter(defaultValue = "true", property = "updateDependencies")
76 private boolean updateDependencies;
77
78
79
80
81
82
83 @Parameter(defaultValue = "false", property = "useEditMode")
84 private boolean useEditMode;
85
86
87
88
89
90
91 @Parameter(defaultValue = "default", property = "projectVersionPolicyId")
92 private String projectVersionPolicyId;
93
94
95
96
97
98
99 @Parameter(property = "projectVersionPolicyConfig")
100 private PlexusConfiguration projectVersionPolicyConfig;
101
102 @Override
103 public void execute() throws MojoExecutionException, MojoFailureException {
104 final ReleaseDescriptorBuilder config = createReleaseDescriptor();
105 config.setAddSchema(addSchema);
106 config.setAutoVersionSubmodules(autoVersionSubmodules);
107 config.setDefaultDevelopmentVersion(developmentVersion);
108 config.setScmUseEditMode(useEditMode);
109 config.setUpdateDependencies(updateDependencies);
110 config.setProjectVersionPolicyId(projectVersionPolicyId);
111 if (projectVersionPolicyConfig != null) {
112 config.setProjectVersionPolicyConfig(projectVersionPolicyConfig.toString());
113 }
114 config.addOriginalScmInfo(
115 ArtifactUtils.versionlessKey(project.getGroupId(), project.getArtifactId()), project.getScm());
116
117 try {
118 ReleaseUpdateVersionsRequest updateVersionsRequest = new ReleaseUpdateVersionsRequest();
119 updateVersionsRequest.setReleaseDescriptorBuilder(config);
120 updateVersionsRequest.setReleaseEnvironment(getReleaseEnvironment());
121 updateVersionsRequest.setReactorProjects(getReactorProjects());
122 updateVersionsRequest.setReleaseManagerListener(new DefaultReleaseManagerListener(getLog()));
123 updateVersionsRequest.setUserProperties(session.getUserProperties());
124
125 releaseManager.updateVersions(updateVersionsRequest);
126 } catch (ReleaseExecutionException e) {
127 throw new MojoExecutionException(e.getMessage(), e);
128 } catch (ReleaseFailureException e) {
129 throw new MojoFailureException(e.getMessage(), e);
130 }
131 }
132 }