13

我需要一个在 pom.xml 中版本号不一致的依赖项。

Apache XmlSchema-Pom的版本SNAPSHOT显然不正确1.1

根据这个gradle 讨论,如果将 Maven 存储库指定为 ivy 存储库,添加@jar或添加transitive = 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'
4

2 回答 2

14

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

repositories {
    maven {
        url 'http://xxxxx/xx'
        metadataSources {
             artifact() //Look directly for artifact
        }
    }
}
于 2019-08-22T20:09:51.943 回答
2

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

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

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

    在我XmlSchema的 jcenter 存储库示例中(XmlSchema来自 jcenter

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

于 2017-02-16T18:01:27.060 回答