问题标签 [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.
hudson - 常春藤发布到存储库不会更新本地缓存
鉴于:
- 使用 Hudson/Ant 构建。
- Ivy 缓存超时设置为 5 分钟。
- Ivy 存储库包含项目 A 版本 2.2.2 和项目 B 版本 1.1.1。
- 项目 B 依赖于项目 A。
事件:
- 对项目 A 进行了 API 更改。
- 对项目 B 进行了相关更改。
- 项目 A 版本 2.2.3 已构建并发布到存储库。
- 不到 5 分钟后,Project B 版本 1.1.2 构建完成。
- 项目 B 失败,仍然从常春藤缓存中提取项目 A 版本 2.2.2。
- 5 分钟后,项目 B 将正确构建,项目 A 版本为 2.2.3
我看过但没有看到明显的解决方案(除了不缓存?)。是否有发布设置会更新本地缓存和存储库?您是否需要明确发布到两者?
jar - 依赖 JAR 时是否可以排除类/包?
我需要依赖一个包含整个 JUnit 3 包的 JAR 文件,但我将 JUnit 4 与我的项目分开捆绑。因此,我的测试中断是因为它们是使用 JUnit 3 运行器执行的,而应该使用 JUnit 4 运行器运行它们。
问题是:我可以告诉 Gradle 在依赖 JAR 时不要包含某些类或整个包吗?
更新 它使用建议的 zipTree/copy 解决方案工作:
工作精美。
configuration - 为什么我必须为同一个依赖项同时指定“运行时”和“编译”?
我依赖于一些我需要编译和运行我的应用程序的工件。
根据 Gradle 文档,运行时配置扩展了编译配置,因此添加依赖项使用是否runtime
意味着隐式compile
依赖项?
至少这是我的假设,但它不起作用。当仅依赖于使用的工件时runtime
,我的项目不再编译。我真的必须:
让应用程序在运行时编译和查看 Signpost 类。
我错过了什么吗?只是看起来不太对...
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 才能工作)。
你是如何解决这个要求的?
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。
有谁知道为什么会发生这种情况?
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 文件中激活配置文件?
提前致谢,
菲利普
maven-2 - Maven 版本的 Ivy 等价物是什么:display-dependency-updates?
我有一个 ivy.xml 文件,我在其中明确指定了我的依赖项。Ivy 中是否有任何内置功能可以让我发现或自动更新我过时的依赖项?
我不想使用 latest.release 因为我想要一个完全稳定且可重现的构建。但是每隔一段时间我就会想要更新一些依赖项,同时最好回答这个问题,哪些其他依赖项已经过时了?
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 的支持。
maven - 用于游戏开发/资产管道的 Maven
我只是在探索将 Maven 作为构建/依赖管理工具,它似乎非常适合在典型的游戏开发场景中管理(通常非常复杂!)依赖关系。
一些示例场景:
- 在格式之间转换 3D 资源/将预处理步骤应用于纹理
- 当世界地图发生变化时重建静态游戏内数据结构,例如寻路节点
- 处理平台特定的图形库等相当复杂的依赖关系。
有没有人用这种方法取得任何成功?
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 容器,那么为什么不使用它来解决所有其他依赖项呢?
我将非常感谢您的想法:)