从Maven 2.0.9开始,有可能包含
<type>pom</type>
<scope>import</scope>
在本<dependencyManagement>
节中。
据我了解,它将被“ pom”替换为包含在此pom中的依赖项,就好像它们最初是在此处定义的一样。
上面的解决方案和对此没有import
范围的pom的简单依赖之间有什么区别(我看到后者被称为“依赖项分组”)?这样的“分组”依赖性在解决依赖性优先级时唯一的区别是低优先级吗?
您只能导入 托管依赖项 。这意味着您只能 将 其他POM导入到dependencyManagement
项目POM的部分中。即
...
<dependencyManagement>
<dependencies>
<dependency>
<groupId>other.pom.group.id</groupId>
<artifactId>other-pom-artifact-id</artifactId>
<version>SNAPSHOT</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
...
然后发生的是,在的dependencyManagement
部分中定义的所有依赖项other-pom-artifact- id
都包含在POM的dependencyManagement
部分中。然后,您可以在dependency
POM(及其所有子POM)部分中引用这些依赖项,而不必添加version
等。
但是,如果在您的POM中仅定义一个常规依赖项,other-pom-artifact- id
则dependencies
该dependency
部分中的所有内容都将other-pom-artifact-id
被可传递地包含在您的项目中-
但是,该dependencyManagement
部分中定义的依赖项other-pom-artifact-id
根本不包括在内。
因此,基本上,两种不同的机制用于导入/包括两种不同类型的依赖项(托管依赖项和常规依赖项)。
Maven网站上有一个很好的页面,它可以比我更好地解释这一点,即Maven中的Dependency
Management,
它还包含有关导入依赖项的特定信息。
上面的解决方案和对这个pom的简单依赖没有作用域(我看到后者被称为“依赖项分组”)有什么区别?唯一的区别是这样的“分组”依赖项具有较低的优先级,而解决依赖项的优先级?
问题内容: 在Java中,我们既可以导入单个类,也可以导入整个类集(一个包)。 举个例子 包括 除了代码的长度之外,以任何方式使用每种方法是否有特定的优势?内存分配?性能? 问题答案: 两者都没有性能或内存分配优势,它们都将编译为相同的字节码。 该语句是告诉编译器在哪里可以找到源代码所引用的类。 但是,仅按类导入有一个优势。如果在两个包中有一个名称完全相同的类,则在引用哪个类时就会发生冲突。 类和
问题内容: 我在书中看到了一段代码,内容如下: 范围和块都一样吗? 问题答案: 作用域是您可以引用变量的地方。块定义了一个变量,该变量在一个块内部定义,将仅在该块内部定义,并且在块结束后不能引用它。 因此,在这段代码中,如果您尝试执行以下操作: 因为这里拥有的是局部作用域 ,所以java中的其他种类的作用域都是(例如),所以类的成员具有类作用域,因此可以在类内部的任何地方访问它。 范围的基本规则是
问题内容: 用Java导入和扩展类有什么区别 问题答案: 那是两件事。 导入一个类是为了使您可以使用该类,而无需在要编写的当前类中限定全名。 扩展类是创建一个新类,该新类是某个其他类的子类。这将允许您添加或更改要扩展的类的功能。
问题内容: 我了解(对于容器)和(对于图像)之间的区别。但最终,保存或导出产生的tarball应该用作 图像 。 那么,为什么有2条命令可以从压缩包制作图像呢? 问题答案: 确实会产生tarball, 但 包含所有父图层以及所有标签+版本。 也会产生压缩包,但没有任何层/历史记录。 当人们想“展平”映像时通常使用它,如Thomas Uhrig的 “展平Docker容器或映像 ” 所示: 但是,一旦
问题内容: 在我的NestJS应用程序中- 我有TypeScript类,这些类中已经注入了其他类和值。唯一的是,我要导入带有语句的TypeScript类,并使用DI系统注入它们。有什么方法可以删除导入语句并让DI系统处理它? 问题答案: TL; DR ->类参考 DI->类实例化 可以通过字符串标记进行匹配,但最好使用类引用。 封装形式 依赖项注入系统主要处理类的实例化。这很好,因为您不必关心要注