This is an automated email from the ASF dual-hosted git repository.

kezhenxu94 pushed a commit to branch dep/maven/tree-file
in repository https://gitbox.apache.org/repos/asf/skywalking-eyes.git

commit 75bef90d9a1e25a22a1607c70a2a8cd32dd555de
Author: kezhenxu94 <[email protected]>
AuthorDate: Mon Feb 13 11:50:38 2023 +0800

    dep/maven: use output file to store the dep tree for cleaner result
    
    When using output file to store the dependency tree, `dependency:tree` 
emits a cleaner tree with effective pom file, this reduces unused dependencies 
in result
---
 pkg/deps/golang.go |  2 +-
 pkg/deps/maven.go  | 23 +++++++++++++----------
 2 files changed, 14 insertions(+), 11 deletions(-)

diff --git a/pkg/deps/golang.go b/pkg/deps/golang.go
index 507dc7b..ea32f0b 100644
--- a/pkg/deps/golang.go
+++ b/pkg/deps/golang.go
@@ -85,7 +85,7 @@ func (resolver *GoModResolver) Resolve(goModFile string, 
config *ConfigDeps, rep
 func (resolver *GoModResolver) ResolvePackages(modules []*packages.Module, 
config *ConfigDeps, report *Report) error {
        for _, module := range modules {
                func() {
-                       if exclued, _ := config.IsExcluded(module.Path, 
module.Version); exclued {
+                       if excluded, _ := config.IsExcluded(module.Path, 
module.Version); excluded {
                                return
                        }
                        if l, ok := 
config.GetUserConfiguredLicense(module.Path, module.Version); ok {
diff --git a/pkg/deps/maven.go b/pkg/deps/maven.go
index 0c5b146..bf79983 100644
--- a/pkg/deps/maven.go
+++ b/pkg/deps/maven.go
@@ -18,11 +18,10 @@
 package deps
 
 import (
-       "bufio"
-       "bytes"
        "encoding/xml"
        "fmt"
        "io"
+       "io/ioutil"
        "os"
        "os/exec"
        "path/filepath"
@@ -126,19 +125,23 @@ func (resolver *MavenPomResolver) DownloadDeps() error {
 }
 
 func (resolver *MavenPomResolver) LoadDependencies(config *ConfigDeps) 
([]*Dependency, error) {
-       buf := bytes.NewBuffer(nil)
-
-       cmd := exec.Command(resolver.maven, "dependency:tree") // #nosec G204
-       cmd.Stdout = bufio.NewWriter(buf)
-       cmd.Stderr = os.Stderr
+       depsFile, err := ioutil.TempFile(os.TempDir(), "maven-dependencies.txt")
+       if err != nil {
+               return nil, err
+       }
+       defer os.Remove(depsFile.Name())
 
-       logger.Log.Debugf("Running command: [%v], please wait", cmd.String())
-       err := cmd.Run()
+       output, err := exec.Command(resolver.maven, "dependency:tree", 
"-DoutputFile="+depsFile.Name()).Output() // #nosec G204
        if err != nil {
+               logger.Log.Errorln(string(output))
                return nil, err
        }
 
-       deps := LoadDependencies(buf.Bytes(), config)
+       buf, err := os.ReadFile(depsFile.Name())
+       if err != nil {
+               return nil, err
+       }
+       deps := LoadDependencies(buf, config)
        return deps, nil
 }
 

Reply via email to