Gradle - подпроекты во вложенных каталогах - PullRequest
1 голос
/ 13 июня 2019

В настоящее время я на 4.10.2, но ожидаю перехода на версию 5.0, поэтому я пытаюсь устранить любые предупреждения об устаревании, связанные с 5.0.

В моем проекте есть следующие файлы Gradle: settings.gradle: (в acfs, т.е. в корне, папке)

rootProject.name = "acfs"
include 's/p/w/manager:code'
include 's/p/w/manager:distribution'

build.gradle: (в папке acfs / s / p / w / manager / code)

apply from: "$projectDir/../../common.gradle"
apply plugin: 'war'

war {
    // Note: this also determines the context path.
    archiveName "${parent.name}.war"

    from('src/main/web/resources') {
        into 'resources'
        include '**/*'
    }
}

Из командной строки в папке acfs, если я запускаю gradle clean build --warning-mode all, я получаю следующее предупреждение:

The project name 's/p/w/manager' contains at least one of the following characters: [ , /, \, :, <, >, ", ?, *, |]. This has been deprecated and is scheduled to be removed in Gradle 5.0. Set the 'rootProject.name' or adjust the 'include' statement (see https://docs.gradle.org/4.10.2/dsl/org.gradle.api.initialization.Settings.html#org.gradle.api.initialization.Settings:include(java.lang.String[]) for more details).

Пытаясь устранить вышеуказанное предупреждение, следуя указаниям, приведенным в приведенной выше ссылке, я изменяю settings.gradle на:

rootProject.name = "acfs"
include 's/p/w/manager:code'
include 's/p/w/manager:distribution'
project(':s/p/w/manager').name = "manager"

Если я затем запускаю gradle clean build --warning-mode all Я больше не получаю предупреждение, однако я получаю следующую ошибку:

Could not determine the dependencies of task 'manager:code:compileJava'.
> Could not resolve all dependencies for configuration ':manager:code:compileClasspath'
  > Project :manager:code not found.

Если я вместо этого изменю settings.gradle, основываясь на https://discuss.gradle.org/t/the-name-aaa-bbb-contains-at-least-one-of-the-following-characters-this-has-been-deprecated-and-is-scheduled-to-be-removed-in-gradle-5-0/24173:

rootProject.name = "acfs"
include 's:p:w:manager:code'
include 's:p:w:manager:distribution'

Когда я запускаю gradle clean build --warning-mode all, он успешен и предупреждений нет Однако артефакт сборки не создается.

Что я делаю не так в settings.gradle и / или мне нужно что-то изменить в файле build.gradle?

1 Ответ

0 голосов
/ 13 июня 2019

Потратив несколько дней на то, чтобы никуда не деться, я выяснил, что я делал неправильно, примерно через час после публикации этого facepalm . Мне нужно было обновить значение project.ext.artifactFrom в файле common.gradle

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