问题标签 [dependency-management]

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 投票
3 回答
1274 浏览

hudson - 常春藤发布到存储库不会更新本地缓存

鉴于:

  • 使用 Hudson/Ant 构建。
  • Ivy 缓存超时设置为 5 分钟。
  • Ivy 存储库包含项目 A 版本 2.2.2 和项目 B 版本 1.1.1。
  • 项目 B 依赖于项目 A。

事件:

  1. 对项目 A 进行了 API 更改。
  2. 对项目 B 进行了相关更改。
  3. 项目 A 版本 2.2.3 已构建并发布到存储库。
  4. 不到 5 分钟后,Project B 版本 1.1.2 构建完成。
  5. 项目 B 失败,仍然从常春藤缓存中提取项目 A 版本 2.2.2。
  6. 5 分钟后,项目 B 将正确构建,项目 A 版本为 2.2.3

我看过但没有看到明显的解决方案(除了不缓存?)。是否有发布设置会更新本地缓存和存储库?您是否需要明确发布到两者?

0 投票
1 回答
946 浏览

jar - 依赖 JAR 时是否可以排除类/包?

我需要依赖一个包含整个 JUnit 3 包的 JAR 文件,但我将 JUnit 4 与我的项目分开捆绑。因此,我的测试中断是因为它们是使用 JUnit 3 运行器执行的,而应该使用 JUnit 4 运行器运行它们。

问题是:我可以告诉 Gradle 在依赖 JAR 时不要包含某些类或整个包吗?

更新 它使用建议的 zipTree/copy 解决方案工作:

工作精美。

0 投票
1 回答
11444 浏览

configuration - 为什么我必须为同一个依赖项同时指定“运行时”和“编译”?

我依赖于一些我需要编译和运行我的应用程序的工件。

根据 Gradle 文档,运行时配置扩展了编译配置,因此添加依赖项使用是否runtime意味着隐式compile依赖项?

至少这是我的假设,但它不起作用。当仅依赖于使用的工件时runtime,我的项目不再编译。我真的必须:

让应用程序在运行时编译查看 Signpost 类。

我错过了什么吗?只是看起来不太对...

0 投票
2 回答
2657 浏览

c# - C++ C# 项目依赖管理

我试图弄清楚如何管理我们的主要 Visual Studio 解决方案。在解决方案中,我们必须管理由其他团队管理并经常更新的 C++/CLI 项目、C++ 本地项目、C# 项目、外部依赖项(具有自己依赖项的编译 C# 程序集)和经常更新(连同他们的依赖项)。

每种类型的项目都可以相互依赖(当然除了 C# 或 C++ native)。
一些 C# 项目依赖于外部 DLL,这可能需要其他一些 DLL 才能正常工作。

到目前为止,我们已经使用构建后步骤将引用复制到每个项目的输出目录(外部编译的 C# 库和所需的 C++ DLL 的附加依赖项)。我们想自动化这个过程。项目很多,外部 DLL 通常由其他团队管理(有时他们会添加越来越多的依赖项),我们希望他们所做的每一个更改都能自动反映在我们的主项目中。
是否有工具,批处理文件的最佳实践,或者不会在这种依赖地狱中迷失自己,并且每次在解决方案中包含新项目时都进行 svn 更新和一些配置工作?

我的一个问题是,如果我有一个需要 C# project1a.dll 和 C# project 1b.dll 的 C# project1.dll,如果我的 C# project2 需要 project1.dll,我不想将 project1a.dll 和 project1b.dll 添加到 project2 引用但我想在我的输出文件夹中找到它(这是因为 project1a 由另一个团队管理,并且每天可能需要 project1x.dll 才能工作)。

你是如何解决这个要求的?

0 投票
1 回答
183 浏览

java - 1.4 Commons-DBCP 被引入而不是 1.3

我有一个奇怪的情况。在 jar A 中,我明确引入了 commons-dbcp 1.3 版。在 jar B 中,我依赖于 jar A。但是,当我在 jar B 中引入 jar A 依赖项时,我的 maven 依赖层次结构显示 jar B 现在使用的是 1.4。如果我删除该依赖项,commons-dbcp 将从我的 maven 依赖项层次结构中消失,因此我确信它不会被拉入其他地方。当我在 jar A 的 maven 依赖层次结构中时,它只显示 1.3。

有谁知道为什么会发生这种情况?

0 投票
1 回答
3297 浏览

java - 如何在 Spring Batch 中覆盖 spring 框架版本?

我正在使用 Spring Batch 2.1.6.RELEASE 开始一个新项目,并使用 Maven 进行依赖管理。

默认情况下,它导入 spring 框架 2.5.6,但我想改用 3.0.5.RELEASE。

这篇文章说它是兼容的,但我不知道如何在我的 maven pom 文件中声明它。

我尝试只放置 spring-core、spring-beans 和 spring-context 版本 3.0.5.RELEASE 的依赖项,但这会将库添加到项目中而不会删除 2.5.6 版本。

我查看了 spring-batch-parent pom 文件,并且有一个名为“spring3”的配置文件使用了我想要的 spring 版本。如何在项目的 pom 文件中激活配置文件?

提前致谢,

菲利普

0 投票
4 回答
1059 浏览

maven-2 - Maven 版本的 Ivy 等价物是什么:display-dependency-updates?

我有一个 ivy.xml 文件,我在其中明确指定了我的依赖项。Ivy 中是否有任何内置功能可以让我发现或自动更新我过时的依赖项?

我不想使用 latest.release 因为我想要一个完全稳定且可重现的构建。但是每隔一段时间我就会想要更新一些依赖项,同时最好回答这个问题,哪些其他依赖项已经过时了?

0 投票
2 回答
189 浏览

ruby - 列出 gem 的非 ruby​​ 依赖项的最佳方法是什么?

我正在编写一个 ruby​​ gem,我想使用一个作为 python 分发的开源程序。我没有时间将 python 程序移植到 ruby​​,我想尽可能自动地管理外部依赖项。

我正在考虑使用 Gem.pre_install 挂钩来自动轻松安装我感兴趣的 python 包。

http://rubygems.rubyforge.org/rubygems-update/Gem.html#method-c-pre_install

如果这是公认的做法,我将不胜感激有关更好方法的建议或对 pre_install 的支持。

0 投票
1 回答
713 浏览

maven - 用于游戏开发/资产管道的 Maven

我只是在探索将 Maven 作为构建/依赖管理工具,它似乎非常适合在典型的游戏开发场景中管理(通常非常复杂!)依赖关系。

一些示例场景:

  • 在格式之间转换 3D 资源/将预处理步骤应用于纹理
  • 当世界地图发生变化时重建静态游戏内数据结构,例如寻路节点
  • 处理平台特定的图形库等相当复杂的依赖关系。

有没有人用这种方法取得任何成功?

0 投票
11 回答
42144 浏览

c# - 依赖注入与服务位置

我目前正在权衡DI和SL之间的优缺点。但是,我发现自己处于以下 catch 22 中,这意味着我应该对所有事情都使用 SL,并且只将 IoC 容器注入每个类。

DI 第 22 条:

一些依赖项,例如 Log4Net,根本不适合 DI。我将这些元依赖称为元依赖,并认为它们对调用代码应该是不透明的。我的理由是,如果一个简单的类“D”最初是在没有日志记录的情况下实现的,然后增长到需要日志记录,那么依赖类“A”、“B”和“C”现在必须以某种方式获得这种依赖关系并将其从“A”到“D”(假设“A”组成“B”,“B”组成“C”,依此类推)。我们现在对代码进行了重大更改,只是因为我们需要登录一个类。

因此,我们需要一种不透明的机制来获得元依赖。我想到了两个:Singleton 和 SL。前者有已知的限制,主要是关于严格的作用域能力:单例最多将使用存储在应用程序范围内的抽象工厂(即在静态变量中)。这允许一些灵活性,但并不完美。

更好的解决方案是将 IoC 容器注入到此类类中,然后在该类中使用 SL 来解决容器中的这些元依赖项。

因此捕获 22:因为该类现在被注入一个 IoC 容器,那么为什么不使用它来解决所有其他依赖项呢?

我将非常感谢您的想法:)