|
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