|
4 | 4 | package maven |
5 | 5 |
|
6 | 6 | import ( |
| 7 | + "code.gitea.io/gitea/modules/util" |
7 | 8 | "encoding/xml" |
8 | 9 | "io" |
9 | 10 |
|
@@ -31,18 +32,27 @@ type Dependency struct { |
31 | 32 | } |
32 | 33 |
|
33 | 34 | type pomStruct struct { |
34 | | - XMLName xml.Name `xml:"project"` |
35 | | - GroupID string `xml:"groupId"` |
36 | | - ArtifactID string `xml:"artifactId"` |
37 | | - Version string `xml:"version"` |
38 | | - Name string `xml:"name"` |
39 | | - Description string `xml:"description"` |
40 | | - URL string `xml:"url"` |
41 | | - Licenses []struct { |
| 35 | + XMLName xml.Name `xml:"project"` |
| 36 | + |
| 37 | + Parent struct { |
| 38 | + GroupID string `xml:"groupId"` |
| 39 | + ArtifactID string `xml:"artifactId"` |
| 40 | + Version string `xml:"version"` |
| 41 | + } `xml:"parent"` |
| 42 | + |
| 43 | + GroupID string `xml:"groupId"` |
| 44 | + ArtifactID string `xml:"artifactId"` |
| 45 | + Version string `xml:"version"` |
| 46 | + Name string `xml:"name"` |
| 47 | + Description string `xml:"description"` |
| 48 | + URL string `xml:"url"` |
| 49 | + |
| 50 | + Licenses []struct { |
42 | 51 | Name string `xml:"name"` |
43 | 52 | URL string `xml:"url"` |
44 | 53 | Distribution string `xml:"distribution"` |
45 | 54 | } `xml:"licenses>license"` |
| 55 | + |
46 | 56 | Dependencies []struct { |
47 | 57 | GroupID string `xml:"groupId"` |
48 | 58 | ArtifactID string `xml:"artifactId"` |
@@ -81,8 +91,16 @@ func ParsePackageMetaData(r io.Reader) (*Metadata, error) { |
81 | 91 | }) |
82 | 92 | } |
83 | 93 |
|
| 94 | + pomGroupID := pom.GroupID |
| 95 | + if pomGroupID == "" { |
| 96 | + // the current module could inherit parent: https://maven.apache.org/pom.html#Inheritance |
| 97 | + pomGroupID = pom.Parent.GroupID |
| 98 | + } |
| 99 | + if pomGroupID == "" { |
| 100 | + return nil, util.ErrInvalidArgument |
| 101 | + } |
84 | 102 | return &Metadata{ |
85 | | - GroupID: pom.GroupID, |
| 103 | + GroupID: pomGroupID, |
86 | 104 | ArtifactID: pom.ArtifactID, |
87 | 105 | Name: pom.Name, |
88 | 106 | Description: pom.Description, |
|
0 commit comments