9
9
10
10
import java .util .*;
11
11
import java .util .Map .Entry ;
12
+ import java .util .stream .Collectors ;
12
13
13
14
import static java .util .Collections .emptyList ;
14
15
import static java .util .Collections .singletonList ;
@@ -45,11 +46,14 @@ public void apply(@Nonnull Project rootProject) {
45
46
.map (it -> new VersionDescription (it .pattern , it .versionFormat , mapPropertyDescription (it .properties )))
46
47
.collect (toList ()));
47
48
49
+
50
+ final Map <String , Object > originVersionMap = rootProject .getAllprojects ().stream ().collect (Collectors .toMap (Project ::getPath , p -> p .getVersion ()));
51
+
48
52
rootProject .getAllprojects ().forEach (project -> {
49
53
// TODO check for version is equals to root project
50
54
51
55
// update version
52
- String gitProjectVersion = gitVersionDetails .getVersionTransformer ().apply (project . getVersion (). toString ( ));
56
+ String gitProjectVersion = gitVersionDetails .getVersionTransformer ().apply (resolveOriginVersion ( project , originVersionMap ));
53
57
54
58
project .getLogger ().info (project .getDisplayName () + " - git versioning [" + project .getVersion () + " -> " + gitProjectVersion + "]"
55
59
+ " (" + gitVersionDetails .getCommitRefType () + ":" + gitVersionDetails .getCommitRefName () + ")" );
@@ -75,6 +79,21 @@ public void apply(@Nonnull Project rootProject) {
75
79
});
76
80
}
77
81
82
+ private String resolveOriginVersion (Project project , Map <String ,Object > originVersionMap ) {
83
+
84
+ String projectVersion = originVersionMap .get (project .getPath ()).toString ();
85
+ if (!projectVersion .equals ("unspecified" )) {
86
+ return projectVersion ;
87
+ }
88
+
89
+ if (project .getParent () == null ){
90
+ return "unspecified" ;
91
+ }
92
+
93
+ return resolveOriginVersion (project .getParent (), originVersionMap );
94
+
95
+ }
96
+
78
97
private Map <String , String > getProjectStringProperties (Project project ) {
79
98
Map <String , String > result = new HashMap <>();
80
99
for (Entry <String , ?> entry : project .getProperties ().entrySet ()) {
0 commit comments