我正在创建一个gradle构建,该构建将构建几个子项目,然后将其发布到工件。 为了发布工件,我需要使用变量名称作为工件名称。这是必需的,因为工件的名称包含表示构建时间的时间戳。 从日志中,我可以看到实际发布是在完成子项目的构建之后发生的,但是看起来我用于工件名称的变量在被初始化之前被初始化,因此引发了错误。以下是发布部分:
publishing {
publications {
// This publishes fine as it is picking the latest
tests(MavenPublication) {
artifactId 'tests'
artifact ('tests/build/libs/tests.jar')
}
// I need to use a variable name for this
// This looks for a .carb file in the sub project build directory
carb(MavenPublication) {
def carbFile = new File('carb/build/carbs').eachFileRecurse(FILES) {
if(it.name.endsWith('.carb')) {
carbFileName = it
}
}
println carbFileName
artifactId 'carb'
artifact carbFileName
}
}
}
对于发布目标'carb'
,我期望carbFileName
在发布时会被填充,但是没有。我可以在发布开始之前看到println
语句,因此它具有错误的值。有什么建议可以解决吗?