Gradle 如何从 maven 获取最新版本的依赖并将其用作项目自己的版本
How to get the latest version of a dependency from maven and use it as project's own version in Gradle
我有一套黄瓜规范,需要 运行针对项目的最新 jar。当项目以特定版本(例如 1.0.4)发布时,我手动更改黄瓜的 gradle 项目版本以匹配 jar 版本。然后我使用项目版本作为依赖版本:
testCompile(group: 'groupId', name: 'theJar', version: version)
有什么方法可以在存储库中获取最新版本的依赖项,然后将此版本用作 cucumber gradle 的项目版本?
version = getTheLatestVersionOfTheJar()
由于历史原因,我想避免在主项目中创建 Cucumber 子项目。
或者如果这不可能,有没有办法在 TeamCity 中做到这一点?那将是我可以接受的解决方法。 IE。 TeamCity 将 运行 构建。该构建将生成一个 Jar 并以某种方式存储版本。然后将使用传入的版本触发黄瓜构建。
为什么要避开 cucumber 子项目。听起来两者的耦合度如此之高,以至于它会很有意义并减轻维护的痛苦?无论如何,在您的构建脚本中放置一个如下所示的方法,以从您的存储库中动态解析最新版本的依赖项。但请注意此方法的成本,因为每次调用它时都会进行依赖项查找。
String getTheLatestVersionOfTheJar(){
def versionResolveConfig = configurations.detachedConfiguration(dependencies.create("junit:junit:+"))
versionResolveConfig.transitive = false
return versionResolveConfig.resolvedConfiguration.firstLevelModuleDependencies[0].moduleVersion
}
我有一套黄瓜规范,需要 运行针对项目的最新 jar。当项目以特定版本(例如 1.0.4)发布时,我手动更改黄瓜的 gradle 项目版本以匹配 jar 版本。然后我使用项目版本作为依赖版本:
testCompile(group: 'groupId', name: 'theJar', version: version)
有什么方法可以在存储库中获取最新版本的依赖项,然后将此版本用作 cucumber gradle 的项目版本?
version = getTheLatestVersionOfTheJar()
由于历史原因,我想避免在主项目中创建 Cucumber 子项目。
或者如果这不可能,有没有办法在 TeamCity 中做到这一点?那将是我可以接受的解决方法。 IE。 TeamCity 将 运行 构建。该构建将生成一个 Jar 并以某种方式存储版本。然后将使用传入的版本触发黄瓜构建。
为什么要避开 cucumber 子项目。听起来两者的耦合度如此之高,以至于它会很有意义并减轻维护的痛苦?无论如何,在您的构建脚本中放置一个如下所示的方法,以从您的存储库中动态解析最新版本的依赖项。但请注意此方法的成本,因为每次调用它时都会进行依赖项查找。
String getTheLatestVersionOfTheJar(){
def versionResolveConfig = configurations.detachedConfiguration(dependencies.create("junit:junit:+"))
versionResolveConfig.transitive = false
return versionResolveConfig.resolvedConfiguration.firstLevelModuleDependencies[0].moduleVersion
}