如何忽略坏pom 'inconsistent module descriptor'(版本)



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

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

根据这个 gradle 讨论,如果 maven 存储库指定为常春藤存储库,将@jartransitive = false添加到依赖项中,应该有可能,所有这些都对我不起作用

这是我对我的尝试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'

我解决这个问题的方式是不同的,我不想碰artifactory pom,因为我无法访问artifactory。 这是您在 gradle.build 中需要的代码

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

至于当前日期,没有实际的方法可以忽略 gradle 对 poms 的验证。

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

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

    这将是我XmlSchema jCenter 存储库的示例(来自 jCenter 的 XmlSchema

  3. 自行下载源代码并将其部署到本地/公司存储库中并改用此版本

相关内容

  • 没有找到相关文章

最新更新