问题标签 [transitive-dependency]

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 投票
1 回答
73 浏览

java - Gradle:不要让传递依赖项在项目源中使用

在使用 Java 8 的项目中,joda-time是项目依赖项的传递依赖项。我想在项目源代码中强制使用 ofjava time而不是。joda-time如何joda-time限制类在 gradle 项目的项目源中使用?

0 投票
1 回答
113 浏览

maven - 具有“传出”依赖关系的 Maven 中央 jar

我们使用的dumbster:dumbster:1.6(来自Maven Central)声明了对javax.mail:mail:1.3.2的依赖。不幸的是,Maven Central 仅从 1.4 版开始包含 javax.mail:mail 的 jar。如果我向dumbster:dumbster:1.6 和javax.mail:mail:1.4.1 添加依赖项,一切正常。

但我想避免告诉我们所有的开发人员,dumbster 不能传递地工作,而是需要一个额外的 mail.jar。有没有办法避免这种情况?

我的印象是这个问题更普遍:来自 Maven Central 的 Jars 指向 Maven Central 之外可能会导致问题。

0 投票
0 回答
93 浏览

android - 传递依赖项不适用于使用 gradle 的 card.io 和 aar 库

嗨,我使用 gradle 的 card.io 到 aar 库的传递依赖。但是它的抛出类没有发现从应用程序到 card.io 的异常。我遵循了链接1和链接 2 ,但上述解决方案不适用于我的应用程序。应用程序正在工作,当 card.io 库直接导入到工作应用程序时。

任何帮助

0 投票
2 回答
8546 浏览

maven - How to turn off transitive dependencies for maven projects?

I have come across the JIRA post that gives a solution as including exclusion tag in each dependency tag of POM.

But I have large number of projects and each project has huge number of dependency tags. It's not feasible to include this <exclusion> in each of the dependency tags.

Question: Is there a way to globally switch off the importing of transitive dependencies in maven?

0 投票
0 回答
65 浏览

maven - Maven 升级 2.2.1 到 3.2.5 后传递依赖的差异

我公司的基础设施发生了变化,迫使从 Maven 2.2.1 升级到 maven 3.0.5

我的项目结构是一个包含几个模块的 EAR。EAR 的依赖项存储在它的lib类路径上的文件夹中,所有模块都可以使用它。当我们有一个由多个模块使用的依赖项时,它被添加为 EAR 的范围compileprovided需要它的模块的范围内的依赖项 - 这样文件就不会加倍。

升级后,具有范围的依赖项provided将被区别对待。它们的传递依赖项被添加到它们模块的 lib 文件夹中。这会导致冲突。

经过一些研究,我找到了一个建议的解决方案 - 将 maven-dependency-plugin 配置为<excludeScope>provided</excludeScope>during <goal>copy-dependencies</goal>,但它没有任何改变 - 临时依赖项lib无论如何都会添加到模块的文件夹中。

我对问题的理解有误吗?maven 2 和 3 之间发生了什么变化导致了这种情况?

问候,扬

麻烦模块中的插件配置:

0 投票
2 回答
452 浏览

java - Maven 依赖管理在测试时被忽略(在运行时工作)

我有两个依赖项指向冲突的javax.validation:validation-api. 为了解决这个问题,我添加了一个dependencyManagement包含最新版本的validation-api.

虽然这会导致应用程序构建正确,并且应用程序在运行时工作,但在测试期间,构建会在引用验证 api 的行处中断(通过@Valid注释)。

冲突的依赖关系是:

我添加了以下内容dependencyManagement

这在运行时和编译时有效,但在我提到的测试中失败@Valid

非常感谢任何帮助,因为这让我发疯。

0 投票
0 回答
274 浏览

gradle - Gradle 可以从本地 JAR 文件中包含的 pom.xml 中读取传递依赖项吗?

与外部依赖项(来自 Maven、Ivy 等)不同,本地 JAR 文件通常不提供 Gradle 的传递依赖项列表。除非他们理论上以文件pom.xmlpom.properties目录的形式进行META-INF/maven/<groupId>/<artifactId>。据我了解,这些是 Maven 用来为工件提供传递依赖的相同文件。

所以我想知道 Gradle 是否能够以某种方式从本地 JAR 文件中读取这些传递依赖项,就好像本地 JAR 是外部依赖项一样。仅将本地 JAR 添加为依赖项似乎会忽略嵌入的pom.xml.

用例:我正在为一个内部产品编写一个插件 API JAR,我们的开发人员应该使用它来开发插件。API JAR 有一些外部依赖项(域类中的 Hibernate Annotations、dom4j 等),如果开发人员不必自己定义这些依赖项(它们可能会随着更新的 API 版本而改变),那就太好了。我也不想创建一个包含所有依赖项的胖 JAR,因为 a) 大小!b) 它不包含外部依赖的来源。

0 投票
4 回答
1895 浏览

java - Gradle 能以任何方式帮助解决 jar hell 吗?

这里是 Java 8。

假设有一个旧版本的widget库,带有 Maven 坐标widgetmakers:widget:1.0.4,其中定义了一个类,如下所示:

岁月流逝。这个widget库的维护者决定 aWidget永远不应该meow,而是事实上应该bark。于是有了一个新版本,它带有 Maven 坐标widgetmakers:widget:2.0.0Widget看起来像:

所以现在我去构建我的应用程序,myapp. 而且,想要使用我所有依赖项的最新稳定版本,我这样声明我的依赖项(在内部build.gradle):

现在假设这个(虚构的)fizzbuzz一直依赖于 1.x 版本的widget库,Widgetmeow.

所以现在,我widget在我的编译类路径中指定了 2 个版本:

  1. widgetmakers:widget:1.0.4它是由库拉入的fizzbuzz,作为它的依赖项;和
  2. widgetmakers:widget:2.0.0我直接引用

很明显,根据Widget首先加载类加载的版本,我们将拥有 aWidget#meow或 a Widget#bark

Gradle 是否提供任何设施来帮助我?有没有办法拉入同一个类的多个版本,并配置fizzbuzz类使用旧版本Widget,而我的类使用新版本?如果没有,我能想到的唯一解决方案是:

  1. 我可能能够完成某种基于着色和/或 fatjar 的解决方案,也许我将所有依赖项作为包拉入其中myapp/bin,然后为它们提供不同的版本前缀。诚然,我在这里没有看到明确的解决方案,但我确信有些事情是可行的(但完全是 hacky/讨厌)。或者...
  2. 仔细检查我的整个依赖关系图,并确保我所有的传递依赖关系不会相互冲突。在这种情况下,对我来说,这意味着要么向维护人员提交拉取请求以将fizzbuzz其升级到最新widget版本,要么不幸的是,降级myapp以使用旧widget版本。

但 Gradle (到目前为止)对我来说很神奇。所以我问:这里有什么 Gradle 魔法可以帮助我吗?

0 投票
2 回答
514 浏览

android - Buck:传递依赖

主项目 A (APK) 依赖于子项目 B (AAR)。A 和 B 都依赖于 C (AAR)。问题是 C 包含两次,这导致:

“values.xml:XXX:错误:属性“YYY”已被定义”

如何从最终 APK 中排除瞬态依赖 C?

项目一:

子项目B

C 是“appcompat-v7.aar”。
注意:A 在“A/libs”中包含 C,B 在“B/libs”中包含 C。

0 投票
1 回答
1175 浏览

java - Maven - 安装到本地仓库,没有得到传递依赖

我有一个 Maven 项目,我想与我的其他几个项目分享。它有一些自定义代码,然后是一些对 log4j、jasypt 等的依赖项。

我构建它并将其安装到我的本地 maven 存储库。我可以看到它已成功放置在那里。查看 .m2/repository/derp/Foo/1.0 它有一个 .pom 定义了所有依赖项。

我还可以将它定义为我的更高级别项目中的依赖项,并且它可以编译。

我可以在 Eclipse 中的“Maven 依赖项”中看到 Jar,扩展该 jar 我可以看到它在 META-INF/maven/derp/Foo/pom.xml 中有正确的 pom 和依赖项。

但是我在 Foo 之上的顶级项目没有得到 Foo 需要的依赖项。我得到运行时异常,并且在 Eclipse 中我的 maven 依赖项中没有任何传递依赖项 jar。

我需要做些什么来确保 Maven 知道在我的本地 repo 中查看 Pom for Foo,这样它才能获得它需要的所有传递依赖项?

- - - 编辑 - - -

回答下面的评论,它们的定义是这样的,依赖项标签位于项目标签下的顶层。

ETC...

这些是 maven 在我刚刚构建和运行这个 Foo 项目时正确找到的 jar,但是如果项目依赖于 Foo (Bar),maven 不包含这些 jar,并且我在尝试运行 Bar 时会发现。