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
Copy file name to clipboardExpand all lines: examples/multi-module/README.md
+36-4
Original file line number
Diff line number
Diff line change
@@ -4,14 +4,30 @@ This example shows how to build multiple containers for a multi-module project i
4
4
5
5
# How the example is set up
6
6
7
-
The project consists of two microservices:
7
+
The project consists of two microservices and a library:
8
8
9
9
1.`name-service` - responds with a name
10
+
1.`shared-library` - a project dependency used by `name-service`
10
11
1.`hello-service` - calls `name-service` and responds with a greeting
11
12
12
13
The **Maven** project is set up with a parent POM ([`pom.xml`](pom.xml)) that defines most of the common build configuration. The module POMs ([`name-service/pom.xml`](name-service/pom.xml) and [`hello-service/pom.xml`](hello-service/pom.xml)) just define inheritance on the parent POM. However, if needed, the module POMs can define custom configuration on `jib-maven-plugin` specific to that module.
13
14
14
-
The **Gradle** project is set up with a single [`build.gradle`](build.gradle) that configures both subprojects (modules). [`settings.gradle`](settings.gradle) defines which modules to include in the overall build. If needed, the subprojects can have `build.gradle` files to define custom configuration on `jib-gradle-plugin` specific to that module.
15
+
The **Gradle** project is set up with a parent [`build.gradle`](build.gradle) that sets some common configuration up for all projects, with each sub-project containing its own `build.gradle` with some custom configuration. [`settings.gradle`](settings.gradle) defines which modules to include in the overall build.
16
+
17
+
## Reproducibility of dependency module `shared-library`
18
+
19
+
Since dependency module builds happen with the underlying build system
20
+
(maven/gradle), we must add some extra configuration to ensure that the
21
+
resulting `jar` that is built conforms to our reproducibility expectations.
22
+
The module [`shared-library`](shared-library) uses the [Reproducible Build Maven Plugin](https://zlika.github.io/reproducible-build-maven-plugin/)
23
+
for maven, and some special `Jar` properties ([`preserveFileTimestamps`](https://docs.gradle.org/current/dsl/org.gradle.api.tasks.bundling.Jar.html#org.gradle.api.tasks.bundling.Jar:preserveFileTimestamps),
0 commit comments