Запуск задачи корневого проекта Gradle из подпроекта

Я столкнулся со следующей проблемой. У меня есть многомодульный проект Gradle. Один модуль - это мой корневой проект, а второй модуль - это интеграционные тесты.

Для запуска моих интеграционных тестов сначала необходимо запустить задачу копирования, чтобы переместить некоторые ресурсы в папку в корневом каталоге проекта.

У меня уже есть такая задача, определенная в моем корневом проекте, которая, когда я пытаюсь вызвать, ничего не делает (я пробовал несколько разных способов ее вызова).

Поскольку это не удалось, я пошел дальше и создал следующую задачу для самого подпроекта:

task prepareTestAssets(type: Copy) {
    description = "Copies the needed jars from the root project output build dir"
    copy {
        from rootProject.configurations.compileClasspath
        into ("${rootProject.rootDir}/classes")
        rename { fileName -> fileName.replace '-internal', '' }
        rename 'ads-(.+).jar', 'ads.jar'
        fileMode 0755
    }

    copy {
        from ("${rootProject.buildDir}/libs")
        into ("${rootProject.rootDir}/classes")
        fileMode 0755
    }
}

От чего я зависит, имея другую задачу. Моя цель - заставить его скопировать корневые классы проекта, а также банку, сгенерированную в build/libs, в один каталог (необходимый для запуска интеграционных тестов).

Моя проблема в том, что когда это работает, он, похоже, не находит источника и продолжает давать сбой.

Может ли кто-нибудь помочь мне решить, почему я не могу скопировать активы корневого проекта из контекста подпроекта


person akortex91    schedule 08.10.2019    source источник
comment
@barfuin кажется, что это сработало нормально. Не могли бы вы объяснить, почему закрытие копии все испортило?   -  person akortex91    schedule 08.10.2019


Ответы (1)


Кажется, вам следует опустить закрытие copy{} и напрямую указать его содержимое.

Конфигурация, предназначенная для задачи, в противном случае передается замыканию, поэтому задача считает, что у нее нет конфигурации (она не знает, как искать замыкание, называемое «копией»).

person barfuin    schedule 08.10.2019