在多项目 gradle build 中更改依赖版本号
Change dependency version number in multi project gradle build
我有一个多模块 gradle 项目,其中包含 core
和 client
。 client
取决于 core
声明如下:
dependencies {
compile project(':core')
}
如果我将 core
和 client
发布到 Ivy 或 Maven,从 client
到 core
的依赖项使用当前为 [=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.+')
}
}
}
}
我有一个多模块 gradle 项目,其中包含 core
和 client
。 client
取决于 core
声明如下:
dependencies {
compile project(':core')
}
如果我将 core
和 client
发布到 Ivy 或 Maven,从 client
到 core
的依赖项使用当前为 [=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.+')
}
}
}
}