我正在将旧项目迁移到新服务器。以前该项目使用 Oracle DB,但现在我希望它使用 Postgress。这些查询非常简单,并且在 Postgres 中的工作方式相同。
但是该项目缺少 Postgres jdbc 驱动程序。我可以以某种方式将此依赖项横向添加到 jar 中而不需要重新编译吗?
最佳答案
Can i somehow add this dependency to the jar without recompiling?
这取决于。
如果您将服务器运行为
java -jar myserver.jar ...
,那么您至少需要修改 JAR 文件中的 list 。严格来说,这并不需要重新编译,但您确实需要分解、修改和重新打包 JAR 文件。如果服务器使用
Class.forName
显式加载 OracleDriver
类,那么您需要更改该代码来加载 PostgresDriver
类代替。 (还有其他使用 JDBC 的方法可以避免这种情况,但这取决于旧服务器的实现方式。)如果您的服务器使用 Oracle 特定数据库类或 Oracle 特定 SQL 功能(或者需要在 Postgres 领域执行相同操作),则需要进行更广泛的更改。
但是,如果没有实际详细检查您的代码库,我们无法预测需要什么。
我的建议是用 Postgres 驱动程序 JAR 替换 Oracle 驱动程序 JAR,然后看看当您针对具有适当架构和数据的 Postgres 数据库运行服务器时会发生什么。
但我不会在“生产中”这样做。在测试环境中进行。如果你无法设置合适的测试环境……就算了。
如果您没有服务器的源代码,我也会忘记它。如果出现任何问题,您很可能需要源代码来找出问题并修复它。
关于java - 将缺少的驱动程序添加到生产中的遗留项目中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55743902/