Skip to content

Commit

Permalink
fix(pom): recursive check all nested depManagements with import scope
Browse files Browse the repository at this point in the history
  • Loading branch information
DmitriyLewen committed Jan 18, 2024
1 parent c95688d commit f7ec709
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 5 deletions.
4 changes: 4 additions & 0 deletions pkg/java/pom/parse.go
Original file line number Diff line number Diff line change
Expand Up @@ -396,6 +396,10 @@ func (p *parser) resolveDepManagement(props map[string]string, depManagement []p
if err != nil {
continue
}

// We need to recursively check all nested depManagements,
// so that we don't miss dependencies on nested depManagements with `Import` scope.
result.dependencyManagement = p.resolveDepManagement(utils.MergeMaps(result.properties, props), result.dependencyManagement)
for k, dd := range result.dependencyManagement {
// Evaluate variables and overwrite dependencyManagement
result.dependencyManagement[k] = dd.Resolve(result.properties, nil, nil)
Expand Down
7 changes: 3 additions & 4 deletions pkg/java/pom/parse_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -562,17 +562,16 @@ func TestPom_Parse(t *testing.T) {
License: "Apache 2.0",
},
{
ID: "org.example:example-api:1.7.30",
ID: "org.example:example-api:1.1.1",
Name: "org.example:example-api",
Version: "1.7.30",
License: "The Apache Software License, Version 2.0",
Version: "1.1.1",
},
},
wantDeps: []types.Dependency{
{
ID: "com.example:import:2.0.0",
DependsOn: []string{
"org.example:example-api:1.7.30",
"org.example:example-api:1.1.1",
},
},
},
Expand Down
2 changes: 1 addition & 1 deletion pkg/java/pom/testdata/import-dependency-management/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
<dependency>
<groupId>org.example</groupId>
<artifactId>example-dependency-management</artifactId>
<version>2.2.2</version>
<version>3.3.3</version>
<scope>import</scope>
<type>pom</type>
</dependency>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>org.example</groupId>
<artifactId>example-dependency-management</artifactId>
<version>3.3.3</version>

<packaging>pom</packaging>
<name>Example API Dependency Management</name>
<description>The example API</description>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.example</groupId>
<artifactId>example-dependency-management2</artifactId>
<version>1.1.1</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>

</project>

0 comments on commit f7ec709

Please sign in to comment.