Я задавал этот вопрос раньше, но на самом деле не зашел слишком далеко с какими-либо результатами. Я ненадолго остановился и вернулся, чтобы попытаться заставить это работать. Я обновляюсь с Java 8 до Java 11 в нашем репозитории, и при попытке запустить установку mvn получаю эту ошибку:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project <project>: Compilation failure
[ERROR] <project>.java:[15,8] createConnectionBuilder() in oracle.jdbc.datasource.impl.OracleDataSource cannot implement createConnectionBuilder() in javax.sql.DataSource
[ERROR] return type oracle.jdbc.datasource.impl.OracleConnectionBuilderImpl is not compatible with java.sql.ConnectionBuilder
Я искал повсюду что-нибудь о том, что это может быть, и единственное, что я понял, это то, что ojdbc8 может быть неправильной версией. Я обновил наш pom.xml до самой последней версии OJDBC8 (19.3.0.0 -> 23.3.0.23.09):
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>23.3.0.23.09</version>
</dependency>
Вот класс, на который ссылается ошибка. Я не вижу нигде, где могла бы возникнуть проблема, поскольку в Java 8 ее не было, и сам код кажется нормальным:
import oracle.jdbc.pool.OracleDataSource;
import org.springframework.security.crypto.encrypt.Encryptors;
import java.sql.SQLException;
import java.sql.SQLFeatureNotSupportedException;
import java.util.logging.Logger;
public class MtDataSource extends OracleDataSource {
public MtDataSource() throws SQLException {
super();
}
}
Я не нашел никакой связи между oracleDataSource и чем-либо с CreateConnectionBuilder, которое было бы связано с этим классом из javax.sql.DataSource или java.sql.ConnectionBuilder.
Ищу совет, так как я совершенно не понимаю, что вызывает проблему с компиляцией. Спасибо!
Я пробовал разные версии OJDBC8 в pom.xml, пробовал разные версии плагина-компилятора maven, пробовал очистить перед установкой.




Пожалуйста, используйте ojdbc11.jar вместо ojdbc8, тогда все будет работать нормально, просто обновите идентификатор артефакта с ojdbc8 на ojdbc11 в вашем pom.xml.