如何忽略坏pom'不一致的模块描述符'(版本)

时间:2017-01-11 08:47:35

标签: gradle pom.xml gradle-dependencies

我需要一个依赖项,它的版本号不一致。

Apache XmlSchema-Pom版本SNAPSHOT显然不正确,因为它应该是1.1

根据这个gradle discussion,如果将maven存储库指定为常春藤存储库,将@jartransitive = false添加到依赖项,那么所有这些都不适合我< / p>

我的build.gradle尝试了一下:

group 'de.company'
version '1.0-SNAPSHOT'

apply plugin: 'maven'
apply plugin: 'java'

repositories {
    // specified as ivy repo
    // ivy {
    //     url = mavenCentral().url
    // }
    mavenCentral()
}

dependencies {
    // with @jar and transitive
    // compile (group: 'org.apache.ws.commons', name: 'XmlSchema', version: '1.1', ext: 'jar') {
    //     transitive = false
    // }
    compile group: 'org.apache.ws.commons', name: 'XmlSchema', version: '1.1'
}

以下是gradle输出的错误消息:

Could not resolve all dependencies for configuration ':compileClasspath'.
> Could not resolve org.apache.ws.commons:XmlSchema:1.1.
  Required by:
      de.company:gradle-test:1.0-SNAPSHOT
   > Could not resolve org.apache.ws.commons:XmlSchema:1.1.
      > inconsistent module metadata found. Descriptor: org.apache.ws.commons:XmlSchema:SNAPSHOT Errors: bad version: expected='1.1' found='SNAPSHOT'

2 个答案:

答案 0 :(得分:1)

我解决此问题的方式有所不同,我不想接触人为因素pom,因为我无权访问人为因素。这是您在gradle.build中需要的代码

repositories {
      maven{
           url 'http://xxxxx/xx'
            metadataSources {
                     artifact() //Look directly for artifact
                }
          }
      }
}

答案 1 :(得分:0)

关于当前日期,没有实际的方法忽略从gradle验证poms。

仍然有一些方法可以解决这个问题。

  1. 尝试使用该依赖项的其他版本,其中pom有效
  2. 检查其他存储库,也许他们有一个有效的pom用于你想要的依赖。

    这将是我的XmlSchema jcenter存储库(XmlSchema from jcenter)的示例

  3. 自行下载资源并将其部署到您的本地/公司存储库并使用此版本