diff --git a/docker/docker-caching/multi-module-caching/Dockerfile b/docker/docker-caching/multi-module-caching/Dockerfile new file mode 100644 index 0000000000..96ebe2a76b --- /dev/null +++ b/docker/docker-caching/multi-module-caching/Dockerfile @@ -0,0 +1,21 @@ +FROM maven:alpine as build +ENV HOME=/usr/app +RUN mkdir -p $HOME +WORKDIR $HOME + +ADD pom.xml $HOME +ADD core/pom.xml $HOME/core/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 runner verify --fail-never +ADD runner $HOME/runner +RUN mvn -pl core,runner package + +FROM openjdk:8-jdk-alpine + +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-caching/Dockerfile-Buildkit b/docker/docker-caching/multi-module-caching/Dockerfile-Buildkit new file mode 100644 index 0000000000..e89ce38e4b --- /dev/null +++ b/docker/docker-caching/multi-module-caching/Dockerfile-Buildkit @@ -0,0 +1,13 @@ +FROM maven:alpine as build +ENV HOME=/usr/app +RUN mkdir -p $HOME +WORKDIR $HOME + +ADD . $HOME +RUN --mount=type=cache,target=/root/.m2 mvn -f $HOME/pom.xml clean package + +FROM openjdk:8-jdk-alpine + +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-caching/core/pom.xml b/docker/docker-caching/multi-module-caching/core/pom.xml new file mode 100644 index 0000000000..eeeb5a6e5b --- /dev/null +++ b/docker/docker-caching/multi-module-caching/core/pom.xml @@ -0,0 +1,25 @@ + + + 4.0.0 + core + + + multi-module-caching + com.baeldung + 0.0.1-SNAPSHOT + + + + + com.google.guava + guava + + + + + 8 + 8 + + \ No newline at end of file diff --git a/docker/docker-caching/multi-module-caching/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 new file mode 100644 index 0000000000..d8c73a331a --- /dev/null +++ b/docker/docker-caching/multi-module-caching/core/src/main/java/com/baeldung/maven_caching/CoreClass.java @@ -0,0 +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..7968114385 --- /dev/null +++ b/docker/docker-caching/multi-module-caching/pom.xml @@ -0,0 +1,29 @@ + + + 4.0.0 + com.baeldung + multi-module-caching + 0.0.1-SNAPSHOT + Multi-module Maven caching example + pom + + + + + com.google.guava + guava + 31.0.1-jre + + + + + + 1.8 + + + + runner + core + + 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..e3654bff17 --- /dev/null +++ b/docker/docker-caching/multi-module-caching/runner/pom.xml @@ -0,0 +1,56 @@ + + + 4.0.0 + runner + + + multi-module-caching + com.baeldung + 0.0.1-SNAPSHOT + + + + + com.baeldung + core + 0.0.1-SNAPSHOT + + + + + + + org.apache.maven.plugins + maven-assembly-plugin + 3.3.0 + + + jar-with-dependencies + + + + true + com.baeldung.maven_caching.MavenCachingApplication + + + + + + assemble-all + package + + single + + + + + + + + + 8 + 8 + + \ No newline at end of file diff --git a/docker/docker-caching/multi-module-caching/runner/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 new file mode 100644 index 0000000000..3673dd86c1 --- /dev/null +++ b/docker/docker-caching/multi-module-caching/runner/src/main/java/com/baeldung/maven_caching/MavenCachingApplication.java @@ -0,0 +1,11 @@ +package com.baeldung.maven_caching; + +public class MavenCachingApplication { + + public static void main(String[] args) { + CoreClass cc = new CoreClass(); + System.out.println(cc.method()); + System.out.println(cc.dependencyMethod()); + } + +} diff --git a/docker/docker-caching/single-module-caching/Dockerfile b/docker/docker-caching/single-module-caching/Dockerfile new file mode 100644 index 0000000000..02157c0dd6 --- /dev/null +++ b/docker/docker-caching/single-module-caching/Dockerfile @@ -0,0 +1,15 @@ +FROM maven:alpine as build +ENV HOME=/usr/app +RUN mkdir -p $HOME +WORKDIR $HOME +ADD pom.xml $HOME +RUN mvn verify --fail-never + +ADD . $HOME +RUN mvn package + +FROM openjdk:8-jdk-alpine + +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-caching/Dockerfile-Buildkit b/docker/docker-caching/single-module-caching/Dockerfile-Buildkit new file mode 100644 index 0000000000..29384ce208 --- /dev/null +++ b/docker/docker-caching/single-module-caching/Dockerfile-Buildkit @@ -0,0 +1,13 @@ +FROM maven:alpine as build +ENV HOME=/usr/app +RUN mkdir -p $HOME +WORKDIR $HOME +ADD . $HOME + +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/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-caching/pom.xml b/docker/docker-caching/single-module-caching/pom.xml new file mode 100644 index 0000000000..386b040138 --- /dev/null +++ b/docker/docker-caching/single-module-caching/pom.xml @@ -0,0 +1,53 @@ + + + 4.0.0 + + com.baeldung + single-module-caching + 1.0-SNAPSHOT + + + + com.google.guava + guava + 31.0.1-jre + + + + + + + org.apache.maven.plugins + maven-assembly-plugin + 3.3.0 + + + jar-with-dependencies + + + + true + com.baeldung.maven_caching.MavenCachingMain + + + + + + assemble-all + package + + single + + + + + + + + + 8 + 8 + + \ No newline at end of file diff --git a/docker/docker-caching/single-module-caching/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 new file mode 100644 index 0000000000..4fbd8e5311 --- /dev/null +++ b/docker/docker-caching/single-module-caching/src/main/java/com/baeldung/maven_caching/MavenCachingMain.java @@ -0,0 +1,11 @@ +package com.baeldung.maven_caching; + +import com.google.common.io.Files; + +public class MavenCachingMain { + + public static void main(String[] args) { + System.out.println("Hello from maven_caching app!!!"); + System.out.println(Files.simplifyPath("/home/app/test")); + } +} diff --git a/docker/pom.xml b/docker/pom.xml index f481f1b8b7..5c6267c6dd 100644 --- a/docker/pom.xml +++ b/docker/pom.xml @@ -26,6 +26,8 @@ docker-internal-dto docker-spring-boot docker-sample-app + docker-caching/single-module-caching + docker-caching/multi-module-caching