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:49 UTC
[skywalking-eyes] branch dep/maven/tree-file created (now 75bef90)
This is an automated email from the ASF dual-hosted git repository.
kezhenxu94 pushed a change to branch dep/maven/tree-file
in repository https://gitbox.apache.org/repos/asf/skywalking-eyes.git
at 75bef90 dep/maven: use output file to store the dep tree for cleaner result
This branch includes the following new commits:
new 75bef90 dep/maven: use output file to store the dep tree for cleaner result
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
[skywalking-eyes] 01/01: dep/maven: use output file to store the dep tree for cleaner result
Posted by ke...@apache.org.
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
}