gradle build: используйте переменную для имени артефакта - PullRequest
0 голосов
/ 20 декабря 2018

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

...