Gradle 7.3 с Java 17 с task Processintestresources: Запись [имя файла] является дубликатом, но стратегия обработки дубликатов не задана

0

Вопрос

Я пытаюсь обновить мультипроектное приложение gradle версии 6.x до gradle 7.3, поскольку это первая версия, поддерживающая Java 17. Однако я не могу преодолеть проблему, связанную с задачей, которая не объявлена ни в одном из моих build.gradle Файлы. Ошибка ниже: ([] фрагменты отредактированы)

Execution failed for task ':[root module]:[module]:processIntTestResources'.
> Entry [filename] is a duplicate but no duplicate handling strategy has been set. Please refer to https://docs.gradle.org/7.3/dsl/org.gradle.api.tasks.Copy.html#org.gradle.api.tasks.Copy:duplicatesStrategy for details.

Я думаю, что это связано с набором исходных текстов для интеграционных тестов, однако я никогда явно не копирую файлы и файлы для этих тестов. Я также настроил все инструкции по копированию на такую конфигурацию в отношении обработки дубликатов:

duplicatesStrategy = DuplicatesStrategy.INCLUDE

Я также попытался добавить вышеизложенное в проекты, которые потерпели неудачу, потому что этот параметр действителен только для задач или блоков типа копирования. Я ни в коем случае не являюсь экспертом в gradle и могу добавить любую необходимую соответствующую информацию, но я считаю, что включил то, что может быть наиболее актуальным. Я действительно просто ищу направление, в котором я могу двигаться, чтобы продолжить отладку этой проблемы.

gradle java java-17
2021-11-23 21:54:30
1

Лучший ответ

0

Вы мало рассказали о том, как у вас настроены интеграционные тесты, но я столкнулся с аналогичной проблемой. Что спасло меня, так это сообщение в блоге Тома Грегори: Запуск интеграционных тестов в Gradle

Поскольку ссылки могут исчезнуть, позвольте мне скопировать и вставить наиболее важную часть, которую я нашел актуальной, а именно, касающуюся нового (начиная с Gradle 7.3) плагина JVM Test Suite, который добавляет поддержку интеграционных тестов. Для меня это заменило мою старую конфигурацию интеграционного теста:

testing {
    suites {
        integrationTest(JvmTestSuite) {
            dependencies {
                implementation project
            }
        }
    }
}
tasks.named('check') {
    dependsOn testing.suites.integrationTest
}

Я также нашел полезным следующее, которого нет в приведенном выше сообщении в блоге, но оно осталось от моей предыдущей конфигурации Gradle 6. Это для меня дублирует зависимости "test" для "IntegrationTest". Сейчас это не рекомендуемый способ обработки проблем с тестированием (см. Документацию по плагину JVM Test Suite), но я все равно счел полезным быстро вернуться к работе:

configurations {
    integrationTestImplementation.extendsFrom testImplementation
    integrationTestRuntime.extendsFrom testRuntime
}
2021-12-14 22:25:37

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................