我有一套黄瓜规格需要针对项目的最新jar运行。当项目以特定版本(例如1.0.4)发布时,我手动更改黄瓜的gradle项目版本以匹配jar版本。然后我将项目版本用作依赖版本:
testCompile(group: 'groupId', name: 'theJar', version: version)
有什么方法可以在存储库中获取最新版本的依赖项,然后将此版本用作黄瓜gradle的项目版本?
version = getTheLatestVersionOfTheJar()
由于历史原因,我想避免在主项目中创建黄瓜子项目。
或者,如果这是不可能的,有没有办法在TeamCity中如何做到这一点?这将是我可以忍受的解决方法。即TeamCity将运行构建。构建将产生一个Jar并以某种方式存储该版本。然后将通过传入的版本触发黄瓜构建。
答案 0 :(得分:1)
为什么要避免黄瓜子项目。听起来两者是如此紧密耦合,以至于它会带来很多意义并减轻维护的痛苦?无论如何,在您的构建脚本中放置一个类似下面的方法,以动态地从您的存储库中解析最新版本的依赖项。但是要注意这个方法的成本,就像每次调用依赖项查找一样。
String getTheLatestVersionOfTheJar(){
def versionResolveConfig = configurations.detachedConfiguration(dependencies.create("junit:junit:+"))
versionResolveConfig.transitive = false
return versionResolveConfig.resolvedConfiguration.firstLevelModuleDependencies[0].moduleVersion
}