From fb851d088c4bf707d89725ab4abd4c53b9b7701c Mon Sep 17 00:00:00 2001 From: Mladen Savic Date: Sun, 20 Feb 2022 22:51:08 +0100 Subject: [PATCH] Caching Maven Dependencies with Docker - improvements --- .../Dockerfile | 10 ++-- .../Dockerfile-Buildkit | 2 +- .../core/pom.xml | 8 ++- .../com/baeldung/maven_caching/CoreClass.java | 6 ++ .../multi-module-caching/pom.xml | 29 ++++++++++ .../multi-module-caching/runner/pom.xml | 55 +++++++++++++++++++ .../MavenCachingApplication.java | 6 +- .../multi-module/application/pom.xml | 36 ------------ .../src/main/resources/application.properties | 1 - .../MavenCachingApplicationTests.java | 13 ----- docker/docker-caching/multi-module/pom.xml | 38 ------------- .../Dockerfile | 2 +- .../Dockerfile-Buildkit | 2 +- .../pom.xml | 2 +- .../maven_caching/MavenCachingMain.java | 0 15 files changed, 107 insertions(+), 103 deletions(-) rename docker/docker-caching/{multi-module => multi-module-caching}/Dockerfile (52%) rename docker/docker-caching/{multi-module => multi-module-caching}/Dockerfile-Buildkit (68%) rename docker/docker-caching/{multi-module => multi-module-caching}/core/pom.xml (72%) rename docker/docker-caching/{multi-module => multi-module-caching}/core/src/main/java/com/baeldung/maven_caching/CoreClass.java (51%) create mode 100644 docker/docker-caching/multi-module-caching/pom.xml create mode 100644 docker/docker-caching/multi-module-caching/runner/pom.xml rename docker/docker-caching/{multi-module/application => multi-module-caching/runner}/src/main/java/com/baeldung/maven_caching/MavenCachingApplication.java (50%) delete mode 100644 docker/docker-caching/multi-module/application/pom.xml delete mode 100644 docker/docker-caching/multi-module/application/src/main/resources/application.properties delete mode 100644 docker/docker-caching/multi-module/application/src/test/java/com/baeldung/maven_caching/MavenCachingApplicationTests.java delete mode 100644 docker/docker-caching/multi-module/pom.xml rename docker/docker-caching/{single-module => single-module-caching}/Dockerfile (66%) rename docker/docker-caching/{single-module => single-module-caching}/Dockerfile-Buildkit (67%) rename docker/docker-caching/{single-module => single-module-caching}/pom.xml (97%) rename docker/docker-caching/{single-module => single-module-caching}/src/main/java/com/baeldung/maven_caching/MavenCachingMain.java (100%) diff --git a/docker/docker-caching/multi-module/Dockerfile b/docker/docker-caching/multi-module-caching/Dockerfile similarity index 52% rename from docker/docker-caching/multi-module/Dockerfile rename to docker/docker-caching/multi-module-caching/Dockerfile index 1f0cc85f7c..96ebe2a76b 100644 --- a/docker/docker-caching/multi-module/Dockerfile +++ b/docker/docker-caching/multi-module-caching/Dockerfile @@ -5,17 +5,17 @@ WORKDIR $HOME ADD pom.xml $HOME ADD core/pom.xml $HOME/core/pom.xml -ADD application/pom.xml $HOME/application/pom.xml +ADD runner/pom.xml $HOME/runner/pom.xml RUN mvn -pl core verify --fail-never ADD core $HOME/core RUN mvn -pl core install -RUN mvn -pl application verify --fail-never -ADD application $HOME/application -RUN mvn -pl core,application package +RUN mvn -pl runner verify --fail-never +ADD runner $HOME/runner +RUN mvn -pl core,runner package FROM openjdk:8-jdk-alpine -COPY --from=build /usr/app/application/target/application-0.0.1-SNAPSHOT.jar /app/runner.jar +COPY --from=build /usr/app/runner/target/runner-0.0.1-SNAPSHOT-jar-with-dependencies.jar /app/runner.jar ENTRYPOINT java -jar /app/runner.jar \ No newline at end of file diff --git a/docker/docker-caching/multi-module/Dockerfile-Buildkit b/docker/docker-caching/multi-module-caching/Dockerfile-Buildkit similarity index 68% rename from docker/docker-caching/multi-module/Dockerfile-Buildkit rename to docker/docker-caching/multi-module-caching/Dockerfile-Buildkit index f51657c9ce..e89ce38e4b 100644 --- a/docker/docker-caching/multi-module/Dockerfile-Buildkit +++ b/docker/docker-caching/multi-module-caching/Dockerfile-Buildkit @@ -8,6 +8,6 @@ RUN --mount=type=cache,target=/root/.m2 mvn -f $HOME/pom.xml clean package FROM openjdk:8-jdk-alpine -COPY --from=build /usr/app/application/target/application-0.0.1-SNAPSHOT.jar /app/runner.jar +COPY --from=build /usr/app/runner/target/runner-0.0.1-SNAPSHOT-jar-with-dependencies.jar /app/runner.jar ENTRYPOINT java -jar /app/runner.jar \ No newline at end of file diff --git a/docker/docker-caching/multi-module/core/pom.xml b/docker/docker-caching/multi-module-caching/core/pom.xml similarity index 72% rename from docker/docker-caching/multi-module/core/pom.xml rename to docker/docker-caching/multi-module-caching/core/pom.xml index 5df8ea7dde..0b79a64143 100644 --- a/docker/docker-caching/multi-module/core/pom.xml +++ b/docker/docker-caching/multi-module-caching/core/pom.xml @@ -3,7 +3,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - maven-caching + multi-module-caching com.baeldung 0.0.1-SNAPSHOT @@ -16,4 +16,10 @@ 8 + + + com.google.guava + guava + + \ No newline at end of file diff --git a/docker/docker-caching/multi-module/core/src/main/java/com/baeldung/maven_caching/CoreClass.java b/docker/docker-caching/multi-module-caching/core/src/main/java/com/baeldung/maven_caching/CoreClass.java similarity index 51% rename from docker/docker-caching/multi-module/core/src/main/java/com/baeldung/maven_caching/CoreClass.java rename to docker/docker-caching/multi-module-caching/core/src/main/java/com/baeldung/maven_caching/CoreClass.java index a33624d4e7..7d57110d72 100644 --- a/docker/docker-caching/multi-module/core/src/main/java/com/baeldung/maven_caching/CoreClass.java +++ b/docker/docker-caching/multi-module-caching/core/src/main/java/com/baeldung/maven_caching/CoreClass.java @@ -1,8 +1,14 @@ package com.baeldung.maven_caching; +import com.google.common.io.Files; + public class CoreClass { public String method(){ return "Hello from core module!!"; } + + public String dependencyMethod(){ + return Files.simplifyPath("/home/app/test"); + } } diff --git a/docker/docker-caching/multi-module-caching/pom.xml b/docker/docker-caching/multi-module-caching/pom.xml new file mode 100644 index 0000000000..42205a29de --- /dev/null +++ b/docker/docker-caching/multi-module-caching/pom.xml @@ -0,0 +1,29 @@ + + + 4.0.0 + pom + + runner + core + + com.baeldung + multi-module-caching + 0.0.1-SNAPSHOT + maven-caching + maven-caching + + 1.8 + + + + + + com.google.guava + guava + 31.0.1-jre + + + + + diff --git a/docker/docker-caching/multi-module-caching/runner/pom.xml b/docker/docker-caching/multi-module-caching/runner/pom.xml new file mode 100644 index 0000000000..d306baf05d --- /dev/null +++ b/docker/docker-caching/multi-module-caching/runner/pom.xml @@ -0,0 +1,55 @@ + + + + multi-module-caching + com.baeldung + 0.0.1-SNAPSHOT + + 4.0.0 + + runner + + + com.baeldung + core + 0.0.1-SNAPSHOT + + + + + 8 + 8 + + + + + + org.apache.maven.plugins + maven-assembly-plugin + 3.3.0 + + + jar-with-dependencies + + + + true + com.baeldung.maven_caching.MavenCachingApplication + + + + + + assemble-all + package + + single + + + + + + + \ No newline at end of file diff --git a/docker/docker-caching/multi-module/application/src/main/java/com/baeldung/maven_caching/MavenCachingApplication.java b/docker/docker-caching/multi-module-caching/runner/src/main/java/com/baeldung/maven_caching/MavenCachingApplication.java similarity index 50% rename from docker/docker-caching/multi-module/application/src/main/java/com/baeldung/maven_caching/MavenCachingApplication.java rename to docker/docker-caching/multi-module-caching/runner/src/main/java/com/baeldung/maven_caching/MavenCachingApplication.java index dec5453dc9..3673dd86c1 100644 --- a/docker/docker-caching/multi-module/application/src/main/java/com/baeldung/maven_caching/MavenCachingApplication.java +++ b/docker/docker-caching/multi-module-caching/runner/src/main/java/com/baeldung/maven_caching/MavenCachingApplication.java @@ -1,15 +1,11 @@ package com.baeldung.maven_caching; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication public class MavenCachingApplication { public static void main(String[] args) { - SpringApplication.run(MavenCachingApplication.class, args); CoreClass cc = new CoreClass(); System.out.println(cc.method()); + System.out.println(cc.dependencyMethod()); } } diff --git a/docker/docker-caching/multi-module/application/pom.xml b/docker/docker-caching/multi-module/application/pom.xml deleted file mode 100644 index 49611e7fbd..0000000000 --- a/docker/docker-caching/multi-module/application/pom.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - maven-caching - com.baeldung - 0.0.1-SNAPSHOT - - 4.0.0 - - application - - - com.baeldung - core - 0.0.1-SNAPSHOT - - - - - 8 - 8 - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - \ No newline at end of file diff --git a/docker/docker-caching/multi-module/application/src/main/resources/application.properties b/docker/docker-caching/multi-module/application/src/main/resources/application.properties deleted file mode 100644 index 8b13789179..0000000000 --- a/docker/docker-caching/multi-module/application/src/main/resources/application.properties +++ /dev/null @@ -1 +0,0 @@ - diff --git a/docker/docker-caching/multi-module/application/src/test/java/com/baeldung/maven_caching/MavenCachingApplicationTests.java b/docker/docker-caching/multi-module/application/src/test/java/com/baeldung/maven_caching/MavenCachingApplicationTests.java deleted file mode 100644 index ec550fb990..0000000000 --- a/docker/docker-caching/multi-module/application/src/test/java/com/baeldung/maven_caching/MavenCachingApplicationTests.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.baeldung.maven_caching; - -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -@SpringBootTest -class MavenCachingApplicationTests { - - @Test - void contextLoads() { - } - -} diff --git a/docker/docker-caching/multi-module/pom.xml b/docker/docker-caching/multi-module/pom.xml deleted file mode 100644 index 0cc309e2ad..0000000000 --- a/docker/docker-caching/multi-module/pom.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - 4.0.0 - pom - - application - core - - - org.springframework.boot - spring-boot-starter-parent - 2.6.3 - - - com.baeldung - maven-caching - 0.0.1-SNAPSHOT - maven-caching - maven-caching - - 1.8 - - - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-test - test - - - - diff --git a/docker/docker-caching/single-module/Dockerfile b/docker/docker-caching/single-module-caching/Dockerfile similarity index 66% rename from docker/docker-caching/single-module/Dockerfile rename to docker/docker-caching/single-module-caching/Dockerfile index 309945440b..02157c0dd6 100644 --- a/docker/docker-caching/single-module/Dockerfile +++ b/docker/docker-caching/single-module-caching/Dockerfile @@ -10,6 +10,6 @@ RUN mvn package FROM openjdk:8-jdk-alpine -COPY --from=build /usr/app/target/maven-caching-1.0-SNAPSHOT-jar-with-dependencies.jar /app/runner.jar +COPY --from=build /usr/app/target/single-module-caching-1.0-SNAPSHOT-jar-with-dependencies.jar /app/runner.jar ENTRYPOINT java -jar /app/runner.jar \ No newline at end of file diff --git a/docker/docker-caching/single-module/Dockerfile-Buildkit b/docker/docker-caching/single-module-caching/Dockerfile-Buildkit similarity index 67% rename from docker/docker-caching/single-module/Dockerfile-Buildkit rename to docker/docker-caching/single-module-caching/Dockerfile-Buildkit index d3d2aad90d..29384ce208 100644 --- a/docker/docker-caching/single-module/Dockerfile-Buildkit +++ b/docker/docker-caching/single-module-caching/Dockerfile-Buildkit @@ -8,6 +8,6 @@ RUN --mount=type=cache,target=/root/.m2 mvn -f $HOME/pom.xml clean package FROM openjdk:8-jdk-alpine -COPY --from=build /usr/app/target/maven-caching-1.0-SNAPSHOT-jar-with-dependencies.jar /app/runner.jar +COPY --from=build /usr/app/target/single-module-caching-1.0-SNAPSHOT-jar-with-dependencies.jar /app/runner.jar ENTRYPOINT java -jar /app/runner.jar \ No newline at end of file diff --git a/docker/docker-caching/single-module/pom.xml b/docker/docker-caching/single-module-caching/pom.xml similarity index 97% rename from docker/docker-caching/single-module/pom.xml rename to docker/docker-caching/single-module-caching/pom.xml index 54337436c5..b1abc55772 100644 --- a/docker/docker-caching/single-module/pom.xml +++ b/docker/docker-caching/single-module-caching/pom.xml @@ -5,7 +5,7 @@ 4.0.0 com.baeldung - single-maven-caching + single-module-caching 1.0-SNAPSHOT diff --git a/docker/docker-caching/single-module/src/main/java/com/baeldung/maven_caching/MavenCachingMain.java b/docker/docker-caching/single-module-caching/src/main/java/com/baeldung/maven_caching/MavenCachingMain.java similarity index 100% rename from docker/docker-caching/single-module/src/main/java/com/baeldung/maven_caching/MavenCachingMain.java rename to docker/docker-caching/single-module-caching/src/main/java/com/baeldung/maven_caching/MavenCachingMain.java