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