Как включить внешние файлы веб-приложений во время сборки Gradle - PullRequest
0 голосов
/ 06 января 2019

Я пытаюсь объединить содержимое "src / main / webapp" из нескольких проектов в процессе сборки. Можно было бы подумать, что это может быть достигнуто с использованием правила sourceSets

sourceSets {
    main {
        java {
            srcDir 'src/main/java'
            srcDir project(':core').file('src/main/java')           
            srcDir project(':mongodb').file('src/main/java')           
            srcDir project(':tripper').file('src/main/java')           
        }
        resources {
            srcDir 'src/main/resources'
            srcDir project(':core').file('src/main/resources')           
            srcDir project(':mongodb').file('src/main/resources')           
            srcDir project(':tripper').file('src/main/resources')           
        }
        webapp {
            srcDir 'src/main/webapp'
            srcDir project(':core').file('src/main/webapp')           
        }
    }
    test {
        resources {
            srcDir 'src/test/resources'
            srcDir project(':core').file('src/test/resources')           
        }
    }
}

Когда я запускаю gradle clean build , я получаю следующую ошибку.

$ gradle clean build

FAILURE: Build failed with an exception.

* Where:
Build file 'C:\Users\mikem\git\workbench\payment\build.gradle' line: 45

* What went wrong:
A problem occurred evaluating project ':payment'.
> Could not find method webapp() for arguments [build_anxrainh90symveso782viscs$_run_closure2$_closure6$_closure10@38dc5714] on source set 'main' of type org.gradle.api.internal.tasks.DefaultSourceSet.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 1s

Мне кажется, что для webapp нет места для сборки, поэтому не удается запустить задачу копирования папки во время процесса сборки.

Документация описывает война { включает в себя '...' от '...' } но не вижу содержания, включенного в войну, и не отображается никаких ошибок.

Кто-нибудь знает, возможно ли это или другой метод, который будет выполнять эту задачу?

(

1 Ответ

0 голосов
/ 07 марта 2019

Я бы написал отдельное задание на войну и сделал бы от него зависимость

task copyOther(type: Copy){
  from //location
  into "$webAppDirName" //src/main/webapp

 }

war.dependsOn copyOther

Поскольку вы не создаете ни одной папки, которая не известна задаче clean, она должна быть в состоянии очистить файлы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...