You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@skywalking.apache.org by ke...@apache.org on 2023/02/13 03:50:50 UTC
[skywalking-eyes] 01/01: dep/maven: use output file to store the dep tree for cleaner result
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 <ke...@apache.org>
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
}