Merge "Use "jar" as default type, "compile" as default scope"

This commit is contained in:
Treehugger Robot 2018-02-13 23:17:02 +00:00 committed by Gerrit Code Review
commit 1fd468782a
1 changed files with 22 additions and 12 deletions

View File

@ -98,8 +98,7 @@ type Dependency struct {
ArtifactId string `xml:"artifactId"`
Version string `xml:"version"`
Type string `xml:"type"`
Scope string `xml:"scope"`
Scope string `xml:"scope"`
}
func (d Dependency) MkName() string {
@ -140,17 +139,19 @@ func (p Pom) MkName() string {
}
func (p Pom) MkJarDeps() []string {
return p.MkDeps("jar")
return p.MkDeps("jar", "compile")
}
func (p Pom) MkAarDeps() []string {
return p.MkDeps("aar")
return p.MkDeps("aar", "compile")
}
func (p Pom) MkDeps(typeExt string) []string {
// MkDeps obtains dependencies filtered by type and scope. The results of this
// method are formatted as Make targets, e.g. run through MavenToMk rules.
func (p Pom) MkDeps(typeExt string, scope string) []string {
var ret []string
for _, d := range p.Dependencies {
if d.Type != typeExt {
if d.Type != typeExt || d.Scope != scope {
continue
}
name := rewriteNames.MavenToMk(d.GroupId, d.ArtifactId)
@ -164,13 +165,22 @@ func (p Pom) SdkVersion() string {
return sdkVersion
}
func (p *Pom) FixDepTypes(modules map[string]*Pom) {
func (p *Pom) FixDeps(modules map[string]*Pom) {
for _, d := range p.Dependencies {
if d.Type != "" {
continue
if d.Type == "" {
if depPom, ok := modules[d.MkName()]; ok {
// We've seen the POM for this dependency, use its packaging
// as the dependency type rather than Maven spec default.
d.Type = depPom.Packaging
} else {
// Dependency type was not specified and we don't have the POM
// for this artifact, use the default from Maven spec.
d.Type = "jar"
}
}
if depPom, ok := modules[d.MkName()]; ok {
d.Type = depPom.Packaging
if d.Scope == "" {
// Scope was not specified, use the default from Maven spec.
d.Scope = "compile"
}
}
}
@ -360,7 +370,7 @@ The makefile is written to stdout, to be put in the current directory (often as
}
for _, pom := range poms {
pom.FixDepTypes(modules)
pom.FixDeps(modules)
}
fmt.Println("# Automatically generated with:")