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 @Parameter(defaultValue = "default", property = "projectVersionPolicyId")
95 private String projectVersionPolicyId;
96
97
98
99
100
101
102 @Parameter(property = "projectVersionPolicyConfig")
103 private PlexusConfiguration projectVersionPolicyConfig;
104
105 @Inject
106 public UpdateVersionsMojo(ReleaseManager releaseManager) {
107 super(releaseManager);
108 }
109
110 @Override
111 public void execute() throws MojoExecutionException, MojoFailureException {
112 final ReleaseDescriptorBuilder config = createReleaseDescriptor();
113 config.setAddSchema(addSchema);
114 config.setAutoVersionSubmodules(autoVersionSubmodules);
115 config.setDefaultDevelopmentVersion(developmentVersion);
116 config.setScmUseEditMode(useEditMode);
117 config.setUpdateDependencies(updateDependencies);
118 config.setProjectVersionPolicyId(projectVersionPolicyId);
119 if (projectVersionPolicyConfig != null) {
120 config.setProjectVersionPolicyConfig(projectVersionPolicyConfig.toString());
121 }
122 config.addOriginalScmInfo(
123 ArtifactUtils.versionlessKey(project.getGroupId(), project.getArtifactId()), project.getScm());
124
125 try {
126 ReleaseUpdateVersionsRequest updateVersionsRequest = new ReleaseUpdateVersionsRequest();
127 updateVersionsRequest.setReleaseDescriptorBuilder(config);
128 updateVersionsRequest.setReleaseEnvironment(getReleaseEnvironment());
129 updateVersionsRequest.setReactorProjects(getReactorProjects());
130 updateVersionsRequest.setReleaseManagerListener(new DefaultReleaseManagerListener(getLog()));
131 updateVersionsRequest.setUserProperties(session.getUserProperties());
132
133 releaseManager.updateVersions(updateVersionsRequest);
134 } catch (ReleaseExecutionException e) {
135 throw new MojoExecutionException(e.getMessage(), e);
136 } catch (ReleaseFailureException e) {
137 throw new MojoFailureException(e.getMessage(), e);
138 }
139 }
140 }