Я изменил свой проект весенней загрузки с Maven на Gradle. С Maven все работает хорошо, но если я переключаю проект на Gradle, возникают интересные ошибки.
Полная ошибка:
Caused by: java.sql.SQLException: No suitable driver found for jdbc:phoenix:localhost
at java.sql.DriverManager.getConnection(DriverManager.java:689) ~[na:1.8.0_121]
at java.sql.DriverManager.getConnection(DriverManager.java:270) ~[na:1.8.0_121]
at ba.autisform.resource.dao.AdminDAO.saveUser(AdminDAO.java:44) ~[classes/:na]
at ba.autisform.resource.dao.AdminDAO.checkUser(AdminDAO.java:34) ~[classes/:na]
... 70 common frames omitted
Зависимости Gradle Hadoop и Phoenix:
compile group: 'org.springframework.data', name: 'spring-data-hadoop', version:'2.5.0.RELEASE'
compile(group: 'org.apache.phoenix', name: 'phoenix-core', version:'4.10.0-HBase-1.1') {
exclude(module: 'slf4j-log4j12')
exclude(module: 'log4j')
exclude(module: 'servlet-api')
exclude(module: 'servlet-api-2.5')
exclude(module: '*')
}
Сбой приложения из-за нескольких журналов, поэтому я исключил slf4j-log4j12 и log4j из зависимости от Phoenix.
Сбой приложения из-за поля java.lang.NoSuchFieldError: IS_SECURITY_ENABLED, которое было создано org.apache.jasper.compiler.JspRuntimeContext, поэтому я исключил servlet-api, servlet-api-2.5 и *.
Зависимости Maven:
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-hadoop</artifactId>
<version>2.5.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.apache.phoenix</groupId>
<artifactId>phoenix-core</artifactId>
<version>4.10.0-HBase-1.2</version>
</dependency>
В чем причина того, что после переключения проекта на Gradle возникают странные ошибки?




Вы разместили только небольшую часть
build.gradleиpom.xml. Вам нужно сравнить выводmvn dependency:treeс тем, что является эквивалентом Gradle, чтобы выяснить, каковы зависимости во время выполнения. Также вы должны проверить, как вы запускаете приложение, возможно, параметры пути к классам не были перенесены из Gradle.