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

标签 maven gradle publish ivy artifacts

我有一个包含 core 的多模块 gradle 项目和 client . client取决于 core声明如下:

dependencies {
    compile project(':core')
}

如果我发布 coreclient对 Ivy 或 Maven 的依赖来自 clientcore使用当前为 core 定义的确切版本(例如 1.0.0 )。

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

最佳答案

为了替换生成的 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.+')
            }
        }
    }
}

关于maven - 在多项目 gradle build 中更改依赖版本号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47368119/

相关文章:

java - 编译失败 : module not found: org. apache.logging.log4j

java - spring boot CommandLineRunner调用所有带run方法的类

grails - 服务类的build.gradle中的Grails访问变量

java 9 模块,NoClassDefFoundError : java. sql.Date

asp.net-mvc-3 - MVC 3 发布不发布引用项目中的 dll

iis - dotnet 使用 gitlab-ci 为傻瓜发布

java - 尝试将 ojdbc7 安装为 Maven 依赖项时出现问题

java - 引用 Maven jar 文件的 Jar 文件不能一致工作

android - 如何使用新的 Android Multidex 支持库启用多索引

package - 发布时更改 Windows Phone 8.1 应用程序版本的 Windows 通用应用程序包版本号