Я пытаюсь создать проект Gradle, содержащий проект Storm. Чтобы запустить этот проект в Storm, мне нужно сначала создать файл JAR и позволить Storm запустить мою топологию, например
storm jar myJarFile.jar com.mypackage.MyStormMainClass
У меня проблемы, потому что Gradle по умолчанию включает зависимости Storm как во время компиляции, так и во время выполнения. Это вызывает следующее исключение:
Exception in thread "main" java.lang.RuntimeException: Found multiple defaults.yaml resources. You're probably bundling the Storm jars with your topology jar.
Данное исключение действительно полезно и указывает нам на основную причину проблемы. Решение состоит в том, чтобы включить зависимости Storm при компиляции с помощью Gradle, но не при генерации окончательного файла JAR.
Кто-нибудь знает, как это решить? Другие сообщения на StackOverflow не решили проблему. Если вы вставляете код, убедитесь, что он действительно работает.
Спасибо!