Я работаю над созданием сборки 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
до начала публикации, следовательно, он имеет неверное значение.какие-либо предложения, чтобы справиться с этим?