You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Mar 23, 2026. It is now read-only.
@@ -54,8 +51,7 @@ You need to have either Java with Maven installed or Docker. You might want to i
54
51
### Setup
55
52
56
53
`make install` primarily relies on `mvn install` command. All following commands are primarily applicable for the `google-cloud-bigquery-jdbc` project.
57
-
58
-
`bigquery-external-jdbc-tests` at this moment is independent and has its own configuration.
54
+
You can also use `make clean` to clean the project and `make lint` to format the code.
IMPORTANT: Running integration tests will skip unit tests. Primary focus of this command is to run specific set of tests without a lot of overhead.
74
+
IMPORTANT: Running integration tests will skip unit tests by default. To include unit tests, run `make integration-test skipSurefire=false`. Primary focus of this command is to run specific set of tests without a lot of overhead.
79
75
80
76
Majority of Integration tests rely on certain environment variables:
81
77
@@ -125,36 +121,26 @@ All Docker commands rely only on `GOOGLE_APPLICATION_CREDENTIALS` env being pres
125
121
126
122
### Packaging
127
123
128
-
There are two ways to package Google JDBC Driver: thin jar and jar with all dependencies.
124
+
There are a few ways to package the Google JDBC Driver. The output of the packaging commands can be found in the `target` directory.
125
+
126
+
`make package` or `make docker-package` will create both a thin jar and a zip file with all dependencies.
127
+
`make package-all-dependencies` or `make docker-package-all-dependencies` will create a single jar with all dependencies included.
128
+
`make package-all-dependencies-shaded` or `make docker-package-all-dependencies-shaded` will create a single shaded jar with all dependencies included.
129
129
130
130
#### Thin jar
131
131
132
-
Thin jar can be generated by running `make docker-package`. It generates jar and list of dependencies in format compatible with copying into `pom.xml` file.
132
+
The thin jar is created with `make package`. The thin jar is packaged as a zip file with its dependencies listed in a `dependencies.txt` file, compatible with `pom.xml`.
133
133
134
134
#### All dependencies
135
135
136
-
Jar with all dependencies can be generated by running `make docker-package-all-dependencies`. Produced jar includes all depenencies and can be used as a standalon jar with tools like R-Studio.
136
+
The jar with all dependencies is also created. This jar includes all dependencies and can be used as a standalone jar with tools like R-Studio. You can run `make package-all-dependencies` or `make docker-package-all-dependencies` to build only the jar with all dependencies.
137
137
138
-
### Custom query tests
138
+
#### Shaded Jar
139
+
You can also build a shaded jar with all dependencies. This can be done by running `make package-all-dependencies-shaded` or `make docker-package-all-dependencies-shaded`.
139
140
140
-
Thin client using JDBC driver can be found in 'bigquery-jdbc-test-client' folder. It allows you to run custom queries with custom connection string to generate logs or measure performance.
141
+
### Nightly builds
141
142
142
-
It can be built for Google JDBC drivers or any other JDBC drivers. For other JDBC drivers, you need to specify a version and it will download it.
143
-
144
-
#### Google test
145
-
146
-
For Google, you need to build an uber jar following previous steps. When it is ready, you can use these
147
-
sample commands to run it:
148
-
149
-
```
150
-
cd bigquery-jdbc-test-client
151
-
make docker-package-for-validation JDBC_JAR_PATH=<path-to-uber-jar>
152
-
make run QUERY=small
153
-
```
154
-
155
-
### Night builds
156
-
157
-
Nightly build is running full set of Integration tests and extended Nightly tests that includes some long-running tests (takes 20+ minutes to complete).
143
+
The nightly build runs the full set of integration tests, including the `ITBigQueryJDBCTest` and `ITNightlyBigQueryTest` test suites. It also includes some long-running tests (takes 20+ minutes to complete).
158
144
159
145
Nightly Integration Tests include a step to build a full and thin jars and upload them to Google Storage.
160
146
@@ -173,7 +159,10 @@ Cloud Build Pipeline is uploading latest full jar to the internal location for p
173
159
174
160
We're using [JaCoCo](https://www.eclemma.org/jacoco/) to track Code Coverage. `Makefile` has 2 separate set of commands for unittests and integration tests reports.
175
161
176
-
You can run `make docker-coverage` and it will produce both results, you can find `jacoco-(unittest|full).zip` file in the root with results.
162
+
You can run `make unit-test-coverage` to generate a coverage report for unit tests. The output will be in `jacoco-unittests.zip`.
163
+
You can run `make full-coverage` to generate a coverage report for both unit and integration tests. The output will be in `jacoco-full.zip`.
164
+
165
+
You can also run `make docker-coverage` which will produce both results. You can find `jacoco-unittests.zip` and `jacoco-full.zip` files in the root with results.
0 commit comments