问题标签 [dependency-tree]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
128 浏览

maven - Whitesource 扫描正在下载未使用的库,而不是通过 mvn 依赖树扫描项目使用的 jar

Whitesource 扫描正在下载未使用的库,而不是通过 gitlab 管道扫描依赖关系树。下面是白源扫描日志,其中没有拾取依赖树以仅扫描我的项目中使用的依赖项。

MavenTreeDependencyCollector - getDependencyTreeOutputFiles - 开始 [DEBUG] [2021-07-22 10:27:09,848 +0000 [ - MavenTreeDependencyCollector - getDependencyTreeOutputFiles - END - 0 [DEBUG] [2021-07-22 10:27:09,848 +0000 [ - MavenTreeDependencyCollector - parseDepTrees - 开始 [INFO] [2021-07-22 10:27:09,848 +0000[ - 开始解析 pom 文件 [INFO] [2021-07-22 10:27:09,851 +0000[ - 结束解析 pom 文件,发现: [DEBUG] [2021-07-22 10:27:09,851 +0000[ - MavenTreeDependencyCollector - parseDepTrees - END - 0 [INFO] [2021-07-22 10:27:09,851 +0000[ - 以下 maven 范围将被忽略:[测试,提供] [DEBUG] [2021-07-22 10:27:10,139 +0000[ - 找到的顶级文件夹:

0 投票
0 回答
23 浏览

npm - npm 安装时 Npm 包失败。我如何找出它的依赖树中包含的包?

有问题的包node-sass在我的create-react-app应用程序中。它的 C++ 构建失败,给了我这个错误。我react-scripts从我的 中删除了package.json,但我的一些包仍然react-scripts用作它的依赖项(如下面的输出所示)。我如何找到为什么node-sass在我的应用程序中?

在尝试安装之前,我删除了我的package.json和。node_modules这是我的日志输出。不幸的是,由于字符数限制,我不能直接包含它们......

npm 安装控制台输出:https ://pastebin.com/rV1UCqnA

/home/m/.npm/_logs/2021-08-16T20_00_36_625Z-debug.log上次日志中提到的结尾: https ://pastebin.com/QmdyKPXF

0 投票
0 回答
18 浏览

python-3.x - 访问依赖树中节点的子节点

我需要在句子的依赖树中获取给定节点的子节点或父节点。怎么可能?例如,在下面的代码中,如何获取“study”的父节点?:

0 投票
2 回答
115 浏览

maven - 如何以编程方式获取 Maven 依赖树

想要通过仅读取 pom.xml 文件而不连接到远程存储库以编程方式打印 maven 依赖关系树(所有依赖关系,包括传递依赖关系)。

0 投票
2 回答
137 浏览

algorithm - 如何对动作的依赖树进行排序和分块,以便在每个步骤中将尽可能多的动作批处理在一起?

假设您有一堆用于将记录创建/插入到一堆不同的数据库表中的操作。您有一些记录可以插入而不依赖于任何其他插入的输出。你有一些需要等待另一件事完成。还有其他人需要等待许多事情完成,这些事情可能在流程中的不同时间完成。

你如何编写一个算法来对依赖树中的动作进行排序和分块,以便对插入/数据库动作进行最佳批处理?通过最佳批处理,我的意思是如果您可以一次将 10 条记录插入同一个表中,那么就这样做。任何时候可以批量插入,都应该尽量减少数据库调用/插入的数量。

这是示例代码中的一个片段,我使用一个简单的数据结构来捕获所有需要的信息,并与一个虚假的动作序列一起使用。

请注意,我们的“依赖节点项”有 4 个可能的属性:

  • action:在我们的情况下,这始终是“创造”,但将来可能是其他事情。
  • table:要插入的表名。
  • set:要添加到动作依赖树中共享全局“范围”的变量的名称,因此其他动作可以将其作为输入读取。
  • input:动作的输入,在我们的例子中都是“绑定”输入(但也可以是文字值,但这太容易了)。对于绑定输入,它从存储在依赖树的共享范围内的记录中读取一些属性/列值。

鉴于此,应该有可能以某种方式构建一个简单的算法,将动作分成可以并行和批处理的子集。例如,我们下面的代码最终会是这样的结构(我手动创建了这个输出,所以虽然我认为我做对了,但可能会出现错误。哦,请注意,虽然表格是编号的,但这并不意味着顺序对他们来说,只是简单的名字选择):

注意结果数组中有 4 个顶级块。这些是主要步骤。然后在每一步中,所有的东西都是按表分组的,所以它们都可以并行运行,并且在每个表组内,它们都可以批量插入。繁荣。

您将如何实现这一点,我的大脑似乎很难掌握?

我认为这大致是拓扑排序,但不太确定如何将其应用于这种特定情况。