Kotlin 中的 TeamCity 配置 - 子项目中的构建 ID 冲突
TeamCity configuration in Kotlin - build id conflict in subprojects
是否可以根据子项目Id生成build Id
而不是根项目 ID ?
我收到验证错误:
BuildType 'RootProjectId_build': id 'RootProjectId_build' is already used
in BuildType(uuid='', id='RootProjectId_build', name='buildA')
对于具有相同 class 名称(但在不同包中)的 2 个子项目和构建的以下项目
RootTestProject.kt
package _Self
import A.SubProjectA
import B.SubProjectB
import jetbrains.buildServer.configs.kotlin.v2018_1.Project
object RootTestProject : Project({
subProject(SubProjectA)
subProject(SubProjectB)
})
SubProjectA.kt :
package A
import jetbrains.buildServer.configs.kotlin.v2018_1.BuildType
import jetbrains.buildServer.configs.kotlin.v2018_1.Project
object build : BuildType({name = "buildA"})
object SubProjectA : Project({
name = "SubProjectNameA"
buildType(build)
})
SubProjectB.kt :
package B
import jetbrains.buildServer.configs.kotlin.v2018_1.BuildType
import jetbrains.buildServer.configs.kotlin.v2018_1.Project
object build : BuildType({name = "buildB"})
object SubProjectB : Project({
name = "SubProjectNameB"
buildType(build)
})
出于某种原因,我需要为构建保留相同的 class 名称,所以我不会简单地将 'object build' 更改为 'object buildA' 和 'object buildB'
假设包名等同于子项目
解决方法是:
object build : BuildType({name = "buildB"
id(this.javaClass.`package`.name +"_"+id.toString().split("_")[1])
})
这种方式构建 ID 是:RootProjectId_B_build
是否可以根据子项目Id生成build Id 而不是根项目 ID ?
我收到验证错误:
BuildType 'RootProjectId_build': id 'RootProjectId_build' is already used
in BuildType(uuid='', id='RootProjectId_build', name='buildA')
对于具有相同 class 名称(但在不同包中)的 2 个子项目和构建的以下项目
RootTestProject.kt
package _Self
import A.SubProjectA
import B.SubProjectB
import jetbrains.buildServer.configs.kotlin.v2018_1.Project
object RootTestProject : Project({
subProject(SubProjectA)
subProject(SubProjectB)
})
SubProjectA.kt :
package A
import jetbrains.buildServer.configs.kotlin.v2018_1.BuildType
import jetbrains.buildServer.configs.kotlin.v2018_1.Project
object build : BuildType({name = "buildA"})
object SubProjectA : Project({
name = "SubProjectNameA"
buildType(build)
})
SubProjectB.kt :
package B
import jetbrains.buildServer.configs.kotlin.v2018_1.BuildType
import jetbrains.buildServer.configs.kotlin.v2018_1.Project
object build : BuildType({name = "buildB"})
object SubProjectB : Project({
name = "SubProjectNameB"
buildType(build)
})
出于某种原因,我需要为构建保留相同的 class 名称,所以我不会简单地将 'object build' 更改为 'object buildA' 和 'object buildB'
假设包名等同于子项目 解决方法是:
object build : BuildType({name = "buildB"
id(this.javaClass.`package`.name +"_"+id.toString().split("_")[1])
})
这种方式构建 ID 是:RootProjectId_B_build