当前位置: 首页 > 知识库问答 >
问题:

常春藤解决版本来自POM父级的POM依赖关系

谢运良
2023-03-14

使用日食(赫利俄斯)的常春藤2.2和常春藤DE 2.2。...

想从http://maven . spring framework . org/milestone/org/spring framework/data/spring-data-neo4j/2 . 1 . 0 . m1获取spring-data-neo4j及其默认依赖项

在我的常春藤文件中使用以下内容:

<dependency org="org.springframework.data" name="spring-data-neo4j" rev="2.1.0.M1"/>

以及我的设置文件中的这些解析器:

<!-- Maven springframework data milestones -->
<url name="maven.springframework.data.milestone">
  <ivy pattern="http://maven.springframework.org/milestone/org/springframework/data/[module]/[revision]/[artifact]-[revision].[ext]" />
  <artifact pattern="http://maven.springframework.org/milestone/org/springframework/data/[module]/[revision]/[artifact]-[revision].[ext]" />
</url>

<!-- Maven springframework milestones -->
<url name="maven.springframework.data.milestone">
  <ivy pattern="http://maven.springframework.org/milestone/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
  <artifact pattern="http://maven.springframework.org/milestone/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
</url>

只有spring-data-neo4j工件被拉下来,在Ivy控制台中没有提到父级(调试级别)。查看了以下建议:http://theholyjava.wordpress.com/2011/01/26/using-ivy-with-pom-xml/

但感觉这只适用于无法通过普通解析器访问的相对路径。查看PomModuleDescriptorParser代码,如果父模块为空,则会丢弃它可能包含的所有信息(如修订信息):

 if (parentDescr != null) {
   for (int i = 0; i < parentDescr.getDependencies().length; i++) {
     mdBuilder.addDependency(parentDescr.getDependencies()[i]);
   }
 }

如果是这种情况:(1)如何在日志中查看更多内容,以及(2)获取解析OtherPom方法以返回父级?

提前谢谢-马修

共有1个答案

梁磊
2023-03-14

尝试以下常春笋.xml文件

<ivysettings>
    <settings defaultResolver="maven-repos"/>
    <resolvers>
        <chain name="maven-repos">
            <ibiblio name="central" m2compatible="true"/>
            <ibiblio name="spring-milestone" m2compatible="true" root="http://maven.springframework.org/milestone"/>
        </chain>
    </resolvers>
</ivysettings>

ibiblio解析器是配置Maven存储库的最佳方式。

 类似资料:
  • 我有这样配置的父pom: 我的孩子波姆: 我想在我的类路径中使用4.3.5版本,因为目前我收到错误消息,不应修改父版本: 任何想法如何防止覆盖4.2.9版本?

  • 当我使用mvn install构建工件时,我看到JAR在我的.m2文件夹中构建,但是Project.version没有替换为实际版本,即1.0-Snapshot。 > 每个工件的.m2存储库中的父pom和/或子pom是否具有指定的版本,或者是否为Project.version 我是否应该在父POM中指定Project.Version作为属性。maven文档说明Project.version可由De

  • 问题内容: 我是使用Maven和Jenkins的新手。我试图继承从父pom到子pom的依赖关系,它显示以下错误: 这是我的父母POM: 这是我的孩子POM: 这是我尝试从父POM继承子POM中的依赖项的方法: 如果我将相同的依赖项放在子POM中,则效果很好。我使用jenkins在nexus中进行安装和部署。我正在使用maven-3.3.9。在詹金斯,我从git中阅读了两个不同的Maven项目中的父

  • 在我的父pom xml文件中,我声明了一些在大多数孩子的pom中使用的依赖项。 然而,在一个子pom中,我不使用这些依赖项,我想找到一种方法来排除它们(为了不被视为未使用的依赖项)。 现在,在子pom的依赖部分,我什么都没有!有什么想法吗?

  • 问题内容: 我在ivaven.xml中添加了一个依赖项(让我们将其命名为A),它在maven Central中具有一个pom文件。Ivy使用ibiblio解决了Maven依赖关系。添加到ivy.xml的依赖项(A)具有传递的依赖项(B)。到目前为止,到目前为止很好。常春藤无法解决传递性依赖项(B)的依赖项(C)。 我在ivy.xml中定义了A,如下所示: 在B的pom文件中,在编译和测试范围中都定

  • 假设<code>B:1.0.1,但是子项目应该依赖于<code>A:1.2(有意覆盖传递依赖性)。 很容易发现 ,并从它的所有子POM中删除样板文件。不幸的是,下面的设置导致在最终的工件中使用两个版本:< code>A:1.0.1(作为< code>B:1.0.1的依赖项)和< code>A:1.0.2(来自父pom中的显式声明)。 如何在所有子项目中强制使用< code>A:1.0.2版本,并在