在多项目 gradle build 中更改依赖版本号

Change dependency version number in multi project gradle build

我有一个多模块 gradle 项目,其中包含 coreclientclient 取决于 core 声明如下:

dependencies {
    compile project(':core')
}

如果我将 coreclient 发布到 Ivy 或 Maven,从 clientcore 的依赖项使用当前为 [=12] 定义的确切版本=](例如 1.0.0)。

有办法改变吗?假设 core 保证在次要版本之间兼容。所以我希望依赖于版本 1.+.

而不是 1.0.0

为了替换生成的版本 pom.xml 我创建了一个辅助函数:

// helper function to replace dependency version in maven pom.xml
def replaceDependencyVersion(root, groupId, artifactId, version) {
    // replace version
    root.dependencies.dependency.findAll() { node ->
        node.groupId.text() == groupId && node.artifactId.text() == artifactId
    }.each() { node ->
        node.version*.value = version
    }
}

发布时可以使用此函数替换版本号:

// publishing
publishing {
    publications {
        mavenJava(MavenPublication) {
            from components.java

            pom.withXml {
                replaceDependencyVersion(asNode(), 'com.test', 'core', '1.+')
            }
        }
    }
}