开发
关于驱动程序
PostgreSQL JDBC 驱动程序具有一些独特的属性,在开始为其开发任何代码之前,您应该了解这些属性。当前的开发驱动程序支持多个服务器版本。这并不意味着每个功能都必须在每个组合中都能正常工作,但必须为不支持的版本提供合理的行为。虽然这种额外的兼容性听起来像是很多工作,但实际目标是通过维护一个代码库来减少工作量。
工具
构建和测试驱动程序需要以下工具
- Java 11+ 用于启动 Gradle。我们建议安装 Java 17
- Git SCM
- PostgreSQL 实例 用于运行测试。
构建流程
从 git 仓库 获取源代码后,进入顶层 pgjdbc
目录,然后输入 ./gradlew build -x test
或 ./gradlew assemble
。这将构建驱动程序并将其放置在 pgjdbc/build/distributions/postgresql-${version}.jar
中。
测试套件
为了确保驱动程序按预期工作,有一套 JUnit 测试需要运行。这些测试需要一个数据库来运行,该数据库已安装 plpgsql 过程语言。用户名和数据库的默认参数为“test”,密码为“test”。因此,如果在提示时输入“password”,则设置此项的示例交互将如下所示:
postgres@host:~$ createuser -d -A test -P
Enter password for user "test":
Enter it again:
CREATE USER
postgres@host:~$ createdb -U test test
CREATE DATABASE
postgres@host:~$ createlang plpgsql test
现在我们准备运行测试,只需输入 ./gradlew clean test
,它应该开始运行。要使用非默认值运行回归测试,可以在顶层目录中创建 build.local.properties
。此属性文件允许您使用标准属性“key = value”用法设置主机、数据库、用户、密码和端口的值。设置端口值的能力使您能够轻松地针对同一台机器上的多个不同服务器版本运行测试。