This is an automated email from the ASF dual-hosted git repository.
cstamas pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven.git
The following commit(s) were added to refs/heads/master by this push:
new 84ed8bea95 [MNG-8331] Sometimes versioned dependencies disappear
(#1821)
84ed8bea95 is described below
commit 84ed8bea95c7ad45270a2a8e940f8ce3914b751d
Author: Jan-Jelle Kester <[email protected]>
AuthorDate: Sat Oct 19 20:01:42 2024 +0200
[MNG-8331] Sometimes versioned dependencies disappear (#1821)
Ensure all dependencies end up in the model. Avoid work when there are no
dependencies. Extract method, re-introduce optimization to return original model
---
https://issues.apache.org/jira/browse/MNG-8331
---
.../internal/impl/model/DefaultModelBuilder.java | 65 ++++++++++++----------
1 file changed, 36 insertions(+), 29 deletions(-)
diff --git
a/maven-api-impl/src/main/java/org/apache/maven/internal/impl/model/DefaultModelBuilder.java
b/maven-api-impl/src/main/java/org/apache/maven/internal/impl/model/DefaultModelBuilder.java
index 38266f3032..377e0be7ea 100644
---
a/maven-api-impl/src/main/java/org/apache/maven/internal/impl/model/DefaultModelBuilder.java
+++
b/maven-api-impl/src/main/java/org/apache/maven/internal/impl/model/DefaultModelBuilder.java
@@ -564,40 +564,47 @@ public class DefaultModelBuilder implements ModelBuilder {
// Infer inner reactor dependencies version
//
Model transformFileToRaw(Model model) {
- List<Dependency> newDeps = new ArrayList<>();
- boolean modified = false;
+ if (model.getDependencies().isEmpty()) {
+ return model;
+ }
+ List<Dependency> newDeps = new
ArrayList<>(model.getDependencies().size());
+ boolean changed = false;
for (Dependency dep : model.getDependencies()) {
+ Dependency newDep = null;
if (dep.getVersion() == null) {
- Dependency.Builder depBuilder = null;
- Model depModel = getRawModel(model.getPomFile(),
dep.getGroupId(), dep.getArtifactId());
- if (depModel != null) {
- String version = depModel.getVersion();
- InputLocation versionLocation =
depModel.getLocation("version");
- if (version == null && depModel.getParent() != null) {
- version = depModel.getParent().getVersion();
- versionLocation =
depModel.getParent().getLocation("version");
- }
- depBuilder = Dependency.newBuilder(dep);
- depBuilder.version(version).location("version",
versionLocation);
- if (dep.getGroupId() == null) {
- String depGroupId = depModel.getGroupId();
- InputLocation groupIdLocation =
depModel.getLocation("groupId");
- if (depGroupId == null && depModel.getParent() !=
null) {
- depGroupId = depModel.getParent().getGroupId();
- groupIdLocation =
depModel.getParent().getLocation("groupId");
- }
- depBuilder.groupId(depGroupId).location("groupId",
groupIdLocation);
- }
- }
- if (depBuilder != null) {
- newDeps.add(depBuilder.build());
- modified = true;
- } else {
- newDeps.add(dep);
+ newDep = inferDependencyVersion(model, dep);
+ if (newDep != null) {
+ changed = true;
}
}
+ newDeps.add(newDep == null ? dep : newDep);
+ }
+ return changed ? model.withDependencies(newDeps) : model;
+ }
+
+ private Dependency inferDependencyVersion(Model model, Dependency dep)
{
+ Model depModel = getRawModel(model.getPomFile(), dep.getGroupId(),
dep.getArtifactId());
+ if (depModel == null) {
+ return null;
+ }
+ Dependency.Builder depBuilder = Dependency.newBuilder(dep);
+ String version = depModel.getVersion();
+ InputLocation versionLocation = depModel.getLocation("version");
+ if (version == null && depModel.getParent() != null) {
+ version = depModel.getParent().getVersion();
+ versionLocation = depModel.getParent().getLocation("version");
+ }
+ depBuilder.version(version).location("version", versionLocation);
+ if (dep.getGroupId() == null) {
+ String depGroupId = depModel.getGroupId();
+ InputLocation groupIdLocation =
depModel.getLocation("groupId");
+ if (depGroupId == null && depModel.getParent() != null) {
+ depGroupId = depModel.getParent().getGroupId();
+ groupIdLocation =
depModel.getParent().getLocation("groupId");
+ }
+ depBuilder.groupId(depGroupId).location("groupId",
groupIdLocation);
}
- return modified ? model.withDependencies(newDeps) : model;
+ return depBuilder.build();
}
String replaceCiFriendlyVersion(Map<String, String> properties, String
version) {