您只需要在想要构建自定义版本的 Connector/J 或有兴趣帮助我们测试新代码时,才需要从源代码安装 Connector/J。要仅在系统上运行 MySQL Connector/J,请使用标准二进制发行版安装 Connector/J;有关说明,请参见 第 4.1 节,“从二进制发行版安装 Connector/J”。
要从源代码安装 MySQL Connector/J,请确保系统上安装了以下软件
建议使用以下软件的最新可用版本编译 Connector/J;否则,某些功能可能不可用。
Git 客户端(如果您想从我们的 GitHub 存储库中检出源代码,可从 https://git.js.cn/downloads 获取)。
Apache Ant 1.10.6 或更高版本(可从 https://ant.apache.ac.cn/ 获取)。
JDK 1.8.x(可从 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 获取)。
-
以下第三方库
-
JUnit 5.10.2(有关安装和下载信息,请参见 JUnit 5 用户指南)。需要以下 JAR 文件
junit-jupiter-api-5.10.2.jar
(可从例如 https://central.sonatype.com/artifact/org.junit.jupiter/junit-jupiter-api/5.10.2/jar 获取)。junit-jupiter-engine-5.10.2.jar
(可从例如 https://central.sonatype.com/artifact/org.junit.jupiter/junit-jupiter-engine/5.10.2/jar 获取)。junit-platform-commons-1.10.2.jar
(可从例如 https://central.sonatype.com/artifact/org.junit.platform/junit-platform-commons/1.10.2/jar 获取)。junit-platform-engine-1.10.2.jar
(可从例如 https://central.sonatype.com/artifact/org.junit.platform/junit-platform-engine/1.10.2/jar 获取)。junit-platform-launcher-1.10.2.jar
(可从例如 https://central.sonatype.com/artifact/org.junit.platform/junit-platform-launcher/1.10.2/jar 获取)。-
以下 JUnit 5 依赖的附加 JAR 文件
apiguardian-api-1.1.2.jar
(可从例如 https://central.sonatype.com/artifact/org.apiguardian/apiguardian-api/1.1.2/jar 获取)。opentest4j-1.3.0.jar
(可从例如 https://central.sonatype.com/artifact/org.opentest4j/opentest4j/1.3.0/jar 获取)。
Javassist 3.30.2 (
javassist-3.30.2-GA.jar
,可从例如 https://central.sonatype.com/artifact/org.javassist/javassist/3.30.2-GA/bundle 获取)。Protocol Buffers Java API 4.26.1 (
protobuf-java-4.26.1.jar
,可从例如 https://central.sonatype.com/artifact/com.google.protobuf/protobuf-java/4.26.1/bundle 获取)。C3P0 0.10.1 或更高版本 (
c3p0-0.10.1.jar
,可从例如 https://central.sonatype.com/artifact/com.mchange/c3p0/0.10.1/jar 获取)。Simple Logging Facade API 2.0.13 或更高版本 (
slf4j-api-2.0.13.jar
,可从例如 https://central.sonatype.com/artifact/org.slf4j/slf4j-api/2.0.13/jar 获取)。Java Hamcrest 2.2 或更高版本 (
hamcrest-2.2.jar
,可从例如 https://central.sonatype.com/artifact/org.hamcrest/hamcrest/2.2/jar 获取)。Oracle Cloud Infrastructure SDK for Java (
oci-java-sdk-common-3.41.2.jar
,可从例如 https://central.sonatype.com/artifact/com.oracle.oci.sdk/oci-java-sdk-common/3.41.2/jar 获取)。OpenTelemetry API (
opentelemetry-api-1.38.0.jar
,可从例如 https://central.sonatype.com/artifact/io.opentelemetry/opentelemetry-api/1.38.0 获取)。OpenTelemetry Context (
opentelemetry-context-1.38.0.jar
,可从例如 https://central.sonatype.com/artifact/io.opentelemetry/opentelemetry-context/1.38.0 获取)。Open Test Alliance for the JVM (
opentest4j-1.3.0.jar
,可从例如 https://central.sonatype.com/artifact/org.opentest4j/opentest4j/1.3.0 获取)。
-
要从源代码构建 MySQL Connector/J,请按照以下步骤操作
确保已安装 JDK 1.8.x。
-
通过以下方法之一获取 Connector/J 的源代码
从 Connector/J 下载页面 下载 Connector/J 的平台独立发行版存档(以
.tar.gz
或.zip
格式),其中包含源代码。将存档的内容解压缩到一个名为mysql-connector-j
的文件夹中。-
从 Connector/J 下载页面 下载 Connector/J 的源代码 RPM 包并安装它。
-
从位于 GitHub 上的 MySQL Connector/J 的源代码存储库中检出代码,地址为 https://github.com/mysql/mysql-connector-j。Connector/J 9.0 系列的最新版本位于
release/9.0
分支上;使用以下命令检出它$> git clone --branch release/9.0 https://github.com/mysql/mysql-connector-j.git
在当前目录下,该命令将创建一个名为
mysql-connector-j
的子目录,其中包含所需的代码。
将所有必需的第三方库放置在源代码树根目录下的名为
lib
的目录中(也就是说,如果按照上述步骤操作,则位于mysql-connector-j/lib
中),或者将它们放置在其他位置,并在稍后将位置提供给 Ant(请参见下面的步骤 5)。将当前工作目录更改为在步骤 2 中创建的
mysql-connector-j
目录。-
在该目录中,创建一个名为
build.properties
的文件,使用属性com.mysql.cj.build.jdk
向 Ant 指示 JDK 1.8.x 安装的根目录位置,以及使用属性com.mysql.cj.extra.libs
指示其他库的位置(如果它们不在mysql-connector-j/lib
中)。以下是一个包含这些属性设置的示例文件(将 “path_to_*
” 部分替换为相应的路径):com.mysql.cj.build.jdk=path_to_jdk_1.8 com.mysql.cj.extra.libs=path_to_folder_for_extra_libraries
或者,您可以通过 Ant
-D
选项设置这些属性的值。注意从 Connector/J 5.1 到 8.0 及更高版本,用于构建 Connector/J 的许多 Ant 属性已被重命名或删除;有关详细信息,请参见 第 4.4.1.4 节,“构建属性的更改”。
-
发出以下命令编译驱动程序并创建 Connector/J 的
.jar
文件$> ant build
这将在当前目录中创建一个名为
build
的目录,所有构建输出都将保存在此目录中。在build
目录下将创建一个目录,其名称包含您要构建的版本的版本号。该目录包含源代码、已编译的.class
文件和一个用于部署的.jar
文件。有关所有构建目标的信息,包括创建完整打包发行版的目标,请执行以下命令
$> ant -projecthelp
安装新创建的
.jar
文件(用于 JDBC 驱动程序),如同安装从 MySQL 下载的二进制.jar
文件一样,按照 配置 CLASSPATH 或 为应用程序服务器配置 Connector/J 中给出的说明进行操作。