问题标签 [dependencies]

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 投票
6 回答
9761 浏览

c# - 在 C# 中从程序集及其依赖项创建实例

我有一个应用程序(我们称之为 MyApp),它可以动态地为一个类创建源代码然后编译它。当它编译源代码时,我还引用了另一个文件夹中已经存在的另一个 DLL(即这个新创建的类的基类)。我执行以下操作来编译和输出 DLL:

稍后在我的应用程序中(或下次应用程序运行时),我尝试创建该类的一个实例。我知道新创建的类(我们称之为 Blah)和基类的 DLL 在哪里。我使用以下代码尝试创建新类的实例:

当我像上面那样调用 Assembly.CreateInstance 时,我收到一条错误消息,指出它无法创建实例。当我检查 assembly.GetReferencedAssemblies() 它有标准引用和我的应用程序的引用(MyApp.exe),但它没有我最初编译类时使用的依赖基类的引用(SomeAdditionalReferencedDLL.dll) .

我知道我必须以某种方式添加基类引用才能创建实例,但我不确定如何执行此操作。当我拥有程序集及其所有依赖项时,如何从程序集中创建类的实例?

谢谢

0 投票
4 回答
1412 浏览

java - 如何确定 Java 程序使用了哪些类?

是否有任何工具可以列出应用程序有效使用哪些类以及何时有效使用,或者更好的是,自动修剪 JAR 库以仅提供既被引用又被使用的类?

0 投票
5 回答
1523 浏览

c# - 具有依赖于相同二进制引用的多个项目的解决方案

我有一个包含 10 个项目的解决方案。许多项目依赖于第三方 DLL,称为foo.dll.

问题是,当我升级 foo 时,在 Visual Studio 中,当我转到对象浏览器时,它会显示两个版本的foo.dll.

如何找出哪个项目引用了旧版本的 foo.dll,以便我可以升级它,以便所有项目中只有一个依赖项?

0 投票
3 回答
9265 浏览

java - 您如何使用 Eclipse 确定哪些 JAR 依赖于哪个?

我正在尝试使用 Eclipse JDT AST 解析类。在包含初始 JAR 并整理出更多依赖项之后,它包含 7 个以上的 JAR,并且我仍然有 NoClassDefFoundError 异常。每当我尝试使用很少或没有文档来测试库时,就会出现这种情况。反复试验似乎是解决此问题的一种非常愚蠢(且令人讨厌)的方法。

有没有办法使用 Eclipse 自动解决这个问题?


更新:后来我发现添加您拥有的所有 JAR,并使用 Ctrl-T(查看/定位类型),可以让您手动定位 JAR。这就是谷歌迄今为止提供的解决方案。有没有更好的办法?

0 投票
4 回答
25350 浏览

ant - 常春藤:我如何删除传递依赖?

我正在使用Ivy来管理我的项目的依赖关系。

到目前为止,我已经指定了对 Hibernate 和 servlet-api 的依赖。但是,hibernate jar 本身有很多并不是真正需要的依赖项,例如jaasjacc

这成为一个阻碍,因为 jaas 和 jaac 是 Sun 库,因此它们的许可证禁止将它们放在 Maven 存储库中,因此 Ivy 无法在那里找到它们。

  • 如何让 Ivy 下载 Hibernate 而不是这两个?
  • 作为奖励,如果我真的需要这些并从 Sun 下载了他们的 Jars,Ivy 会在我机器的哪个文件夹中查找它们?
0 投票
6 回答
398 浏览

c# - 发现接口依赖

我已经接管了一个非常大的(> 2M SLOC)软件项目的维护,所有这些都是用 C# 编写的。文档很少。我现在想要对具有公共接口(大约 400 个)的模块进行更改,但我不知道解决方案中的所有其他模块(总共大约 50 个)可能正在使用这个公共接口。

对于这种情况,您将如何创建接口依赖关系使用树?代码库太大,无法简单地浏览 Project Explorer 并阅读源代码。您使用了哪些工具或方法来创建这种类型的依赖关系分析树?

我不想购买任何工具。诸如 Class View 之类的 Visual Studio 工具似乎不能很好地处理这种规模的项目。我曾考虑编写自己的 sed/awk/perl-ish 脚本,该脚本简单地遍历源代码并使用模式匹配来构建我自己的依赖项/接口使用数据库,但如果有的话,我不想做一些艰难的事情一个简单的方法。

谢谢!

0 投票
4 回答
489 浏览

dependencies - 管理不同组件版本之间依赖关系的最佳方法是什么?

我在以前的工作中遇到了这个问题,现在又遇到了这个问题,这意味着我要么运气极差,要么不知道有什么工具或组织系统可以解决这个问题。

在这两种情况下,最终产品都由几个独立的组件组成,每个组件都通过一个商定的接口与其邻居进行通信。问题是,随着时间的推移,界面会发生变化,然后相应的组件也必须更新,以便一切正常工作。

这本身不是问题。问题是当试图返回 SCM 历史时,这使得错误跟踪变得极其困难,因为在某些时候,您尝试调试的组件将不再与系统的其他部分兼容,并且无法针对它们进行测试也没有回滚它们。

举个例子:

  1. 假设我们有一个客户端/服务器产品,为了简单起见,两者都以完全工作的状态开始。我们将这些版本称为client-1.0 和server-1.0。
  2. 一段时间后,对两者都进行了错误修复和功能。现在我们在 client-1.7 和 server-1.2。
  3. 现在服务端的接口改变了,所以客户端也必须改变:server-2.0和client-1.8。
  4. 现在客户端版本为 1.9,发现了一个 bug,我们想测试以前的版本,看看它在哪里停止与服务器一起工作。但是,如果我们回到 1.8 之后,那么服务器也必须恢复。

我给出的示例场景非常简化,但问题归结为:强制执行哪些版本的客户端和服务器相互兼容的最佳方法是什么?

我曾考虑通过文档来做到这一点,但不可避免地,人性会胜利,有人忘记为他们或其他组件更新它们。我也想过通过匹配版本来做到这一点(即,当服务器达到 2.0 时,客户端也被提升),但问题是客户端可能有其他与服务器无关的组件依赖项,所以它没有意义全面更新他们的版本。

必须有一些解决方案来解决这个问题。有人对我的研究有任何建议或起点吗?

0 投票
3 回答
713 浏览

plugins - 插件依赖最佳实践

我们有一个通过接口支持插件的应用程序。另一方面,插件本身包含大量逻辑和代码。除了应用程序公开的接口之外,插件对应用程序库具有依赖项(项目和 dll 引用)。

应用程序核心库有许多可以在插件中使用的可重用组件。但是,如果这些组件中的任何一个发生了变化,插件和应用程序都会受到影响,因为它们都有依赖关系。

是否可以接受包含对系统的依赖项的插件,插件扩展?关于这个问题的最佳实践是什么?

请分享您的想法和经验。

0 投票
1 回答
203 浏览

java - 哪些库支持 Java 6 ServiceLoader 工具(META-INF/服务)?

我想知道 Java 6 中(现已正式支持)ServiceLoader工具的采用率是多少。我想开始使用它作为查找依赖项的首选方式。显然,如果 jar 已经附带了必要的配置文件,这将变得容易得多。

只是四处逛逛,我很高兴看到 MySQL JDBC 驱动程序有“META-INF/services”(至少在 mysql-connector-j 的 v5.1 中)。

我很想知道有哪些其他主要/广泛使用的库可以提供此功能。

0 投票
2 回答
12921 浏览

apache-flex - 只有在源文件被修改的情况下,如何执行 Ant 任务?

必须有一个简单的方法来做到这一点。我使用依赖于 SWC 库的 ant 构建了一个 Flex 应用程序,除了它是否需要重建库之外,它工作正常。如果库的任何源文件(*.as、*.mxml)比 SWC 更新,我如何告诉 ant 只运行任务?

我看过 <dependset> 但它似乎只是删除文件,而不是确定是否应该运行任务。<depend> 似乎期望源文件和目标文件之间存在一对一的关系,而不是一对多的关系——我有许多输入文件和一个输出文件,但没有中间目标文件。

非常感谢,亚历克斯