问题标签 [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.
maven - 将 Maven 工件传递下载到本地存储库
我正在尝试将特定的工件(及其所有依赖项)下载到机器的本地存储库。
似乎使用 dependency:get 目标将是最好的选择,但尽管有文档,但它似乎并没有真正获得传递依赖。
这是一个示例,我尝试使用它dependency:get
来下载 spring-core jar 及其所有依赖项。你会注意到 spring-core jar 是唯一下载的东西,尽管这是在清理本地存储库之后完成的。
我的问题是:
- 这是
dependency:get
目标的错误吗? - 如果没有,我做错了什么?
- 是否有任何替代方法可以用来实现我最初提出的目标?
dependencies - Maven如何解决传递依赖的版本冲突?最近获胜策略
我终于习惯了在我的项目中没有任何已使用的未声明或未使用的已声明依赖项。尽管很难跟踪在依赖项中列出的未使用声明的运行时/测试依赖项:分析... 只需要在 pom.xml 中为它们写注释或以其他方式管理它们以了解测试或运行时需要它们。
但是解决版本冲突的方法我仍然不清楚。关于传递依赖。
最近获胜策略如何运作?什么时候使用一个版本而不是另一个版本?
如果您使用版本号声明 Used 未声明的依赖项 - 它总是获胜
如果没有明确指定依赖版本,Maven 无法解决任何可能出现的关于此依赖的版本冲突(很奇怪,但写在这里)
如果您没有声明未声明的已使用依赖项,它会从最接近的级别(最近获胜策略)中选择一个传递依赖项,如果冲突处于同一级别,那么它会以某种方式在版本 A 和版本 B 之间做出决定……也许是第一个处理依赖项时的一个胜利
mysql - MySQL 传递依赖
我正在寻找对传递依赖的广泛说明。请帮帮我。谢谢
.net - .NET 利用传递依赖/引用
我有一个包含 3 个项目的 Visual Studio 解决方案:
- 我的网站 (A)
- 商业模式 (B)
- 持久性 (C)
Persistence
, project C
, 依赖NHibernate
并包含所有存储库接口、Hibernate
这些存储库的实现以及映射到数据库表的类。
BusinessModel
, project B
, 依赖C
并包含所有服务类和代表业务领域实体的类。这些服务使用存储库来检索数据,然后将这些数据转换为业务表示形式,呈现在它们自己的接口中。
MyWebSite
, project A
, 依赖A
并包含所有 MVC 类/文件。这里的 MVC 控制器使用服务类 fromB
来执行任何业务逻辑功能。此级别不知道 projectB
使用 projectC
的存储库来执行其操作。
在一个完美的世界中,我认为该项目A
应该引用B
which references C
which references NHibernate
。这似乎不是真的。我发现该项目A
需要参考B
and C
and NHibernate
!我不喜欢我的 Web 应用程序需要了解我的后端架构的想法,我特别不希望它知道我正在NHibernate
用作我的 ORM 的事实。
有没有办法告诉这些项目在解析它们的引用时利用传递依赖?
我的项目是 Visual Studio 2010 中的 .NET 4,如果该信息有什么不同的话。
编辑:我找到了一个相关问题的这个 SO 答案C
,它解释了只有在 project的类从 project 浮出水面时才需要这些参考资料B
。我一直非常坚定地在层之间没有任何泄漏,而且我知道Hibernate
类仅用于,C
所以也许我只是没有正确理解......
maven - 尝试在 Maven 中构建具有嵌入式依赖项的 OSGi 包。似乎无法从 BND 类路径中排除传递依赖
基本上,我的 Web 服务必须可部署为单个 OSGi jar 包。所以:
- 捆绑包必须包含所有编译和运行时 Maven 依赖项。
- 它还必须包含依赖于这些依赖项的所有非可选依赖项(即传递依赖项)。
我正在尝试使用 maven-bundle-plugin 来完成此操作。我使用 Embed-Dependency 将我的所有编译和运行时依赖项放入包中,并使用 Embed-Transitive 嵌入所有传递依赖项。然后我想出了如何使用 excludeDependencies 从 BND 类路径中排除 Maven 依赖项(它们被移动到 Manifest 中的 Private-Package),但是对于我的生活,我无法弄清楚如何让它排除传递依赖项. 无论我做什么,传递依赖项似乎仍然出现在 Manifest 的 Import-Package 列表中。
更糟糕的是,它似乎吸收了所有依赖项,包括可选的依赖项,所以我得到了很多我不使用的额外东西,比如 ibatis 和 jfree。然而,当我将 ;optional=false 添加到依赖模式时,我会收到一条警告,指出没有依赖项与该模式匹配。
我开始尝试逐个排除依赖项,但在追查依赖项一小时后,我决定必须有更好的方法。
这是我的 pom.xml 的当前化身。谁能帮我解决这个问题?
dll - 具有本机依赖和复制文件的 Maven 项目
我有以下情况:
mylib 是一个库(我有它的源代码,所以我想将它们放入一个 Maven 项目 mylib:mylib 中)。这个库有一个 jar 依赖项,我只有 jar,并且在 Maven 存储库中找不到它(我也不想在那里安装它)。为了使它编译,这样的事情会起作用:将jar文件添加到“lib”文件夹中的mylib项目,例如“lib/thirdpartylib.jar”,在mylib的pom.xml中,添加一个具有自选组/的依赖项工件/版本和一个“ <scope>system</scope><systemPath>${project.basedir}/lib/thirdpartylib.jar</systemPath>
”条目。mylib 项目可以正常编译。
请注意,mylib 还具有对 dll 文件的运行时依赖项,例如thirdparty.dll。但是对于编译来说,这并不重要。
但是,现在我想知道如何实现以下目标:
任何其他使用mylib 的项目,例如项目“X”,都需要
,
并且它必须将 java.library.path 设置为目录(例如“.”),以便执行 VM 找到第三方 jar 和 dll。
我担心的是:我希望第三方 jar/dll 的东西由 mylib 项目负责。即我想定义知识,您需要将第三方 jar 和 dll 复制到目标文件夹并且 java.library.path 引用它们,成为 mylib 项目的一部分(mylib pom 知道事情是如何用于其他项目)。然而,我希望将这些知识(即复制指令,无论它们在 Maven 中如何准确完成)传递给使用 mylib 的任何其他项目,例如 X。这有可能吗?
[我现在的 hack 解决方案是我在 X 中有第三方东西的副本,但即便如此我也不知道如何复制/处理 dll 文件,所以我必须写一个自述文件说 dll 文件有复制到正在执行的 VM 的 bin 文件夹中)。
任何建议表示赞赏!
maven - Maven - 不同版本的传递依赖
- 让我们假设我的应用程序需要
foo.jar
和bar.jar
foo.jar
需要 1.0 版c.jar
bar.jar
需要2.0版c.jar
Maven 如何解决这个冲突?c.jar
将使用哪个版本?
java - Maven 循环依赖与多模块项目
我有一个多模块项目,一直让我感到困惑。我有另一个“战争”项目,它使用导入这个多模块 pom 项目
不包括传递依赖项。每当我在多模块“pom”项目中包含依赖项时,使用部分,我不断得到循环依赖。似乎每当您在多模块“pom”项目中使用“模块”时,它都会将子模块包含为依赖项,但它不允许这些依赖项成为包含此多模块“pom”项目的项目的传递依赖项。有没有办法使用
在具有子模块并将子模块依赖项传递给从该 pom 继承的项目的“pom”项目中?
sql - 传递依赖有什么问题?
我的数据库设计中有一些传递依赖项。我的上级告诉我,这些可能会导致错误。我发现很难找到能够告诉我这些依赖项将如何导致错误的资源。它们会带来什么样的问题?
我不是在争论这个事实,只是渴望了解它们会引起什么样的问题。
编辑以获取更多详细信息:
来自维基百科:
传递依赖
传递依赖是一种间接的函数依赖,其中 X→Z 仅凭借 X→Y 和 Y→Z。
maven - Maven传递依赖问题
在构建我的项目时,需要两个版本的 org.bouncy-castle:bcprov
- org.bouncy-城堡:bcprov-jdk12
- org.bouncy-城堡:bcprov-jdk16
因此,在列出依赖项时,我得到了jdkversion12
有什么办法可以修改pom文件,让jdkversion16先列出来?