diff options
Diffstat (limited to 'docker')
30 files changed, 625 insertions, 0 deletions
diff --git a/docker/.dockerignore b/docker/.dockerignore new file mode 100644 index 00000000..0d79d56d --- /dev/null +++ b/docker/.dockerignore @@ -0,0 +1 @@ +readme.txt
\ No newline at end of file diff --git a/docker/ant/Dockerfile b/docker/ant/Dockerfile new file mode 100644 index 00000000..b4789a2e --- /dev/null +++ b/docker/ant/Dockerfile @@ -0,0 +1,33 @@ +FROM ubuntu:16.04 as downloader + +ARG jdk=10 +ADD provision/jdk/java-${jdk}.sh provision/jdk/java-${jdk}.sh +RUN provision/jdk/java-${jdk}.sh + +ARG ant=1.10.1 +ADD provision/ant/ant-${ant}.sh provision/ant/ant-${ant}.sh +RUN provision/ant/ant-${ant}.sh + +FROM ubuntu:16.04 + +COPY --from=downloader /usr/local/apache-ant/ /usr/local/apache-ant/ +COPY --from=downloader /opt/jdk/ /opt/jdk/ + +RUN update-alternatives --install /usr/bin/java java /opt/jdk/bin/java 1000 && update-alternatives --install /usr/bin/javac javac /opt/jdk/bin/javac 1000 && update-alternatives --install /usr/bin/javadoc javadoc /opt/jdk/bin/javadoc 1000 && update-alternatives --install /usr/bin/javap javap /opt/jdk/bin/javap 1000 + +WORKDIR workspace + +ADD shared/ ./ + +ARG jdk=10 +ADD ant/files/jdk-${jdk} ./ + +ARG lombokjar=lombok.jar +ADD https://projectlombok.org/downloads/${lombokjar} lombok.jar + +ENV JDK_VERSION=${jdk} +ENV JAVA_HOME=/opt/jdk +ENV ANT_HOME=/usr/local/apache-ant/apache-ant +ENV PATH="${JAVA_HOME}/bin:${ANT_HOME}/bin:${PATH}" + +ENTRYPOINT bash diff --git a/docker/ant/files/jdk-10/build.xml b/docker/ant/files/jdk-10/build.xml new file mode 100644 index 00000000..3f181ed9 --- /dev/null +++ b/docker/ant/files/jdk-10/build.xml @@ -0,0 +1,35 @@ +<project name="example" default="dist" basedir="."> + <property name="src" location="src/main/java"/> + <property name="build" location="build"/> + <property name="dist" location="dist"/> + <property name="build.sysclasspath" value="ignore"/> + + <target name="init"> + <tstamp/> + <mkdir dir="${build}"/> + </target> + + <target name="compile" depends="init" description="compile the source"> + <javac classpath="lombok.jar" srcdir="${src}" destdir="${build}" fork="true"> + <compilerarg value="-J--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED"/> + <compilerarg value="-J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/> + <compilerarg value="-J--add-opens=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED"/> + <compilerarg value="-J--add-opens=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED"/> + <compilerarg value="-J--add-opens=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED"/> + <compilerarg value="-J--add-opens=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED"/> + <compilerarg value="-J--add-opens=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED"/> + <compilerarg value="-J--add-opens=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED"/> + <compilerarg value="-J--add-opens=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED"/> + </javac> + </target> + + <target name="dist" depends="compile" description="generate the distribution"> + <mkdir dir="${dist}/lib"/> + <jar jarfile="${dist}/lib/example-${DSTAMP}.jar" basedir="${build}"/> + </target> + + <target name="clean" description="clean up"> + <delete dir="${build}"/> + <delete dir="${dist}"/> + </target> +</project>
\ No newline at end of file diff --git a/docker/ant/files/jdk-8/build.xml b/docker/ant/files/jdk-8/build.xml new file mode 100644 index 00000000..2fc38879 --- /dev/null +++ b/docker/ant/files/jdk-8/build.xml @@ -0,0 +1,25 @@ +<project name="example" default="dist" basedir="."> + <property name="src" location="src/main/java"/> + <property name="build" location="build"/> + <property name="dist" location="dist"/> + <property name="build.sysclasspath" value="ignore"/> + + <target name="init"> + <tstamp/> + <mkdir dir="${build}"/> + </target> + + <target name="compile" depends="init" description="compile the source"> + <javac classpath="lombok.jar" srcdir="${src}" destdir="${build}" fork="true"/> + </target> + + <target name="dist" depends="compile" description="generate the distribution"> + <mkdir dir="${dist}/lib"/> + <jar jarfile="${dist}/lib/example-${DSTAMP}.jar" basedir="${build}"/> + </target> + + <target name="clean" description="clean up"> + <delete dir="${build}"/> + <delete dir="${dist}"/> + </target> +</project>
\ No newline at end of file diff --git a/docker/ant/files/jdk-9/build.xml b/docker/ant/files/jdk-9/build.xml new file mode 100644 index 00000000..3f181ed9 --- /dev/null +++ b/docker/ant/files/jdk-9/build.xml @@ -0,0 +1,35 @@ +<project name="example" default="dist" basedir="."> + <property name="src" location="src/main/java"/> + <property name="build" location="build"/> + <property name="dist" location="dist"/> + <property name="build.sysclasspath" value="ignore"/> + + <target name="init"> + <tstamp/> + <mkdir dir="${build}"/> + </target> + + <target name="compile" depends="init" description="compile the source"> + <javac classpath="lombok.jar" srcdir="${src}" destdir="${build}" fork="true"> + <compilerarg value="-J--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED"/> + <compilerarg value="-J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/> + <compilerarg value="-J--add-opens=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED"/> + <compilerarg value="-J--add-opens=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED"/> + <compilerarg value="-J--add-opens=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED"/> + <compilerarg value="-J--add-opens=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED"/> + <compilerarg value="-J--add-opens=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED"/> + <compilerarg value="-J--add-opens=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED"/> + <compilerarg value="-J--add-opens=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED"/> + </javac> + </target> + + <target name="dist" depends="compile" description="generate the distribution"> + <mkdir dir="${dist}/lib"/> + <jar jarfile="${dist}/lib/example-${DSTAMP}.jar" basedir="${build}"/> + </target> + + <target name="clean" description="clean up"> + <delete dir="${build}"/> + <delete dir="${dist}"/> + </target> +</project>
\ No newline at end of file diff --git a/docker/ant/readme.md b/docker/ant/readme.md new file mode 100644 index 00000000..6618cd03 --- /dev/null +++ b/docker/ant/readme.md @@ -0,0 +1,33 @@ +## Configuration + +[_(general configuration and options)_](../readme.md) + +### `ARG ant=1.10.1` + +The ant version to be used. Supported values: + +- `1.10.1` (default) + +## Example build commands: + +(To be executed from the `<lombokhome>/docker` directory) + +``` +docker build -t lombok-ant-jdk10 -f ant/Dockerfile . + +docker build -t lombok-ant-jdk10 --build-arg lombokjar=lombok-1.16.20.jar -f ant/Dockerfile . +``` + +## Example run commands: + +``` +docker run -it lombok-ant-jdk10 + +docker run --rm -it -v /<lombokhome>/dist/lombok.jar:/workspace/lombok.jar lombok-ant-jdk10 +``` + +## Example container commands: + +``` +ant dist +``` diff --git a/docker/bazel/Dockerfile b/docker/bazel/Dockerfile new file mode 100644 index 00000000..bbfc4e89 --- /dev/null +++ b/docker/bazel/Dockerfile @@ -0,0 +1,32 @@ +FROM ubuntu:16.04 as downloader + +ARG jdk=10 +ADD provision/jdk/java-${jdk}.sh provision/jdk/java-${jdk}.sh +RUN provision/jdk/java-${jdk}.sh + +ARG bazel=0.13.0 +ADD provision/bazel/bazel-${bazel}.sh provision/bazel/bazel-${bazel}.sh +RUN provision/bazel/bazel-${bazel}.sh + +FROM ubuntu:16.04 + +COPY --from=downloader /opt/bazel/ /opt/bazel/ +COPY --from=downloader /opt/jdk/ /opt/jdk/ + +RUN update-alternatives --install /usr/bin/java java /opt/jdk/bin/java 1000 && update-alternatives --install /usr/bin/javac javac /opt/jdk/bin/javac 1000 && update-alternatives --install /usr/bin/javadoc javadoc /opt/jdk/bin/javadoc 1000 && update-alternatives --install /usr/bin/javap javap /opt/jdk/bin/javap 1000 +RUN apt-get update && apt-get install -y g++ + +WORKDIR workspace + +ADD shared/ ./ +ADD bazel/files/ ./ +ARG lombokjar=lombok.jar +ADD https://projectlombok.org/downloads/${lombokjar} lombok.jar + +ARG jdk=10 +ENV JDK_VERSION=${jdk} +ENV JAVA_HOME=/opt/jdk +ENV BAZEL_HOME=/opt/bazel +ENV PATH="${JAVA_HOME}/bin:${BAZEL_HOME}/bin:${PATH}" + +ENTRYPOINT bash diff --git a/docker/bazel/files/BUILD b/docker/bazel/files/BUILD new file mode 100644 index 00000000..4a9c7655 --- /dev/null +++ b/docker/bazel/files/BUILD @@ -0,0 +1,18 @@ +java_binary( + name = "ProjectRunner", + main_class = "HelloWorld", + srcs = glob(["src/main/java/*.java"]), + deps = [":lombok"], +) + +java_plugin( + name = "lombok_plugin", + processor_class = "lombok.launch.AnnotationProcessorHider$AnnotationProcessor", + deps = ["@lombok_jar//:jar"], +) + +java_library( + name = "lombok", + exports = ["@lombok_jar//:jar"], + exported_plugins = [":lombok_plugin"], +)
\ No newline at end of file diff --git a/docker/bazel/files/BUILD.lombok b/docker/bazel/files/BUILD.lombok new file mode 100644 index 00000000..06836d17 --- /dev/null +++ b/docker/bazel/files/BUILD.lombok @@ -0,0 +1,5 @@ +java_import( + name = "jar", + jars = ["lombok.jar"], + visibility = ["//visibility:public"] +) diff --git a/docker/bazel/files/WORKSPACE b/docker/bazel/files/WORKSPACE new file mode 100644 index 00000000..4b073ec8 --- /dev/null +++ b/docker/bazel/files/WORKSPACE @@ -0,0 +1,5 @@ +new_local_repository( + name = "lombok_jar", + path = "/workspace", + build_file = "BUILD.lombok", +)
\ No newline at end of file diff --git a/docker/bazel/readme.md b/docker/bazel/readme.md new file mode 100644 index 00000000..2bed86f1 --- /dev/null +++ b/docker/bazel/readme.md @@ -0,0 +1,33 @@ +## Configuration + +[_(general configuration and options)_](../readme.md) + +### `ARG bazel=0.13.0` + +The bazel version to be used. Supported values: + +- `0.13.0` (default) + +## Example build commands: + +(To be executed from the `<lombokhome>/docker` directory) + +``` +docker build -t lombok-bazel-jdk10 -f bazel/Dockerfile . + +docker build -t lombok-bazel-jdk10 --build-arg lombokjar=lombok-1.16.20.jar -f bazel/Dockerfile . +``` + +## Example run commands: + +``` +docker run -it lombok-bazel-jdk10 + +docker run --rm -it -v /<lombokhome>/dist/lombok.jar:/workspace/lombok.jar lombok-bazel-jdk10 +``` + +## Example container commands: + +``` +bazel build //:ProjectRunner +``` diff --git a/docker/gradle/Dockerfile b/docker/gradle/Dockerfile new file mode 100644 index 00000000..204fe00f --- /dev/null +++ b/docker/gradle/Dockerfile @@ -0,0 +1,31 @@ +FROM ubuntu:16.04 as downloader
+
+ARG jdk=10
+ADD provision/jdk/java-${jdk}.sh provision/jdk/java-${jdk}.sh
+RUN provision/jdk/java-${jdk}.sh
+
+ARG gradle=4.7
+ADD provision/gradle/gradle-${gradle}.sh provision/gradle/gradle-${gradle}.sh
+RUN provision/gradle/gradle-${gradle}.sh
+
+FROM ubuntu:16.04
+
+COPY --from=downloader /opt/gradle/ /opt/gradle/
+COPY --from=downloader /opt/jdk/ /opt/jdk/
+
+RUN update-alternatives --install /usr/bin/java java /opt/jdk/bin/java 1000 && update-alternatives --install /usr/bin/javac javac /opt/jdk/bin/javac 1000 && update-alternatives --install /usr/bin/javadoc javadoc /opt/jdk/bin/javadoc 1000 && update-alternatives --install /usr/bin/javap javap /opt/jdk/bin/javap 1000
+
+WORKDIR workspace
+
+ADD shared/ ./
+ADD gradle/files/ ./
+ARG lombokjar=lombok.jar
+ADD https://projectlombok.org/downloads/${lombokjar} lombok.jar
+
+ARG jdk=10
+ENV JDK_VERSION=${jdk}
+ENV JAVA_HOME=/opt/jdk
+ENV GRADLE_HOME=/opt/gradle/gradle
+ENV PATH="${JAVA_HOME}/bin:${GRADLE_HOME}/bin:${PATH}"
+
+ENTRYPOINT bash
diff --git a/docker/gradle/files/build.gradle b/docker/gradle/files/build.gradle new file mode 100644 index 00000000..49923f04 --- /dev/null +++ b/docker/gradle/files/build.gradle @@ -0,0 +1,5 @@ +apply plugin: 'java'
+
+dependencies {
+ compileOnly files('lombok.jar')
+}
\ No newline at end of file diff --git a/docker/gradle/readme.md b/docker/gradle/readme.md new file mode 100644 index 00000000..486b430b --- /dev/null +++ b/docker/gradle/readme.md @@ -0,0 +1,34 @@ +## Configuration + +[_(general configuration and options)_](../readme.md) + +### `ARG gradle=4.7` + +The gradle version to be used. Supported values: + +- `4.7` (default) +- `4.2.1` + +## Example build commands: + +(To be executed from the `<lombokhome>/docker` directory) + +``` +docker build -t lombok-gradle-jdk10 -f gradle/Dockerfile . + +docker build -t lombok-gradle-jdk10 --build-arg lombokjar=lombok-1.16.20.jar -f gradle/Dockerfile . +``` + +## Example run commands: + +``` +docker run -it lombok-gradle-jdk10 + +docker run --rm -it -v /<lombokhome>/dist/lombok.jar:/workspace/lombok.jar lombok-gradle-jdk10 +``` + +## Example container commands: + +``` +gradle assemble +``` diff --git a/docker/maven/Dockerfile b/docker/maven/Dockerfile new file mode 100644 index 00000000..a73faaf6 --- /dev/null +++ b/docker/maven/Dockerfile @@ -0,0 +1,34 @@ +FROM ubuntu:16.04 as downloader
+
+ARG jdk=10
+ADD provision/jdk/java-${jdk}.sh provision/jdk/java-${jdk}.sh
+RUN provision/jdk/java-${jdk}.sh
+
+ARG maven=3.5.0
+ADD provision/maven/maven-${maven}.sh provision/maven/maven-${maven}.sh
+RUN provision/maven/maven-${maven}.sh
+
+FROM ubuntu:16.04
+
+COPY --from=downloader /usr/local/apache-maven/ /usr/local/apache-maven/
+COPY --from=downloader /opt/jdk/ /opt/jdk/
+
+RUN update-alternatives --install /usr/bin/java java /opt/jdk/bin/java 1000 && update-alternatives --install /usr/bin/javac javac /opt/jdk/bin/javac 1000 && update-alternatives --install /usr/bin/javadoc javadoc /opt/jdk/bin/javadoc 1000 && update-alternatives --install /usr/bin/javap javap /opt/jdk/bin/javap 1000
+
+WORKDIR workspace
+
+ADD shared/ ./
+
+ARG jdk=10
+ADD maven/files/jdk-${jdk} ./
+
+ARG lombokjar=lombok.jar
+ADD https://projectlombok.org/downloads/${lombokjar} lombok.jar
+
+ENV JDK_VERSION=${jdk}
+ENV JAVA_HOME=/opt/jdk
+ENV M2_HOME=/usr/local/apache-maven/apache-maven
+ENV M2=${M2_HOME}/bin
+ENV PATH="${M2}:${JAVA_HOME}/bin:${PATH}"
+
+ENTRYPOINT bash
diff --git a/docker/maven/files/jdk-10/pom.xml b/docker/maven/files/jdk-10/pom.xml new file mode 100644 index 00000000..9940955d --- /dev/null +++ b/docker/maven/files/jdk-10/pom.xml @@ -0,0 +1,53 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" 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"> + <modelVersion>4.0.0</modelVersion> + + <groupId>com.example</groupId> + <artifactId>lombok-jdk-${env.JDK_VERSION}</artifactId> + <version>1.0-SNAPSHOT</version> + + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <java.version>1.10</java.version> + </properties> + + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.7.0</version> + <configuration> + <source>${java.version}</source> + <target>${java.version}</target> + <showDeprecation>true</showDeprecation> + <showWarnings>true</showWarnings> + <fork>true</fork> + <compilerargs> + <arg>-Werror</arg> + <arg>-Xlint:all</arg> + <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED</arg> + <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED</arg> + <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED</arg> + <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED</arg> + <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED</arg> + <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED</arg> + <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED</arg> + <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED</arg> + <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED</arg> + </compilerargs> + </configuration> + </plugin> + </plugins> + </build> + + <dependencies> + <dependency> + <groupId>org.projectlombok</groupId> + <artifactId>lombok</artifactId> + <version>1.2.3</version> + <scope>system</scope> + <systemPath>/workspace/lombok.jar</systemPath> + </dependency> + </dependencies> + +</project>
\ No newline at end of file diff --git a/docker/maven/files/jdk-8/pom.xml b/docker/maven/files/jdk-8/pom.xml new file mode 100644 index 00000000..87c4a6a8 --- /dev/null +++ b/docker/maven/files/jdk-8/pom.xml @@ -0,0 +1,44 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" 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"> + <modelVersion>4.0.0</modelVersion> + + <groupId>com.example</groupId> + <artifactId>lombok-jdk-${env.JDK_VERSION}</artifactId> + <version>1.0-SNAPSHOT</version> + + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <java.version>1.8</java.version> + </properties> + + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.7.0</version> + <configuration> + <source>${java.version}</source> + <target>${java.version}</target> + <showDeprecation>true</showDeprecation> + <showWarnings>true</showWarnings> + <fork>true</fork> + <compilerargs> + <arg>-Werror</arg> + <arg>-Xlint:all</arg> + </compilerargs> + </configuration> + </plugin> + </plugins> + </build> + + <dependencies> + <dependency> + <groupId>org.projectlombok</groupId> + <artifactId>lombok</artifactId> + <version>1.2.3</version> + <scope>system</scope> + <systemPath>/workspace/lombok.jar</systemPath> + </dependency> + </dependencies> + +</project>
\ No newline at end of file diff --git a/docker/maven/files/jdk-9/pom.xml b/docker/maven/files/jdk-9/pom.xml new file mode 100644 index 00000000..dfbb9ad9 --- /dev/null +++ b/docker/maven/files/jdk-9/pom.xml @@ -0,0 +1,53 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" 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"> + <modelVersion>4.0.0</modelVersion> + + <groupId>com.example</groupId> + <artifactId>lombok-jdk-${env.JDK_VERSION}</artifactId> + <version>1.0-SNAPSHOT</version> + + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <java.version>1.9</java.version> + </properties> + + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.7.0</version> + <configuration> + <source>${java.version}</source> + <target>${java.version}</target> + <showDeprecation>true</showDeprecation> + <showWarnings>true</showWarnings> + <fork>true</fork> + <compilerargs> + <arg>-Werror</arg> + <arg>-Xlint:all</arg> + <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED</arg> + <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED</arg> + <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED</arg> + <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED</arg> + <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED</arg> + <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED</arg> + <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED</arg> + <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED</arg> + <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED</arg> + </compilerargs> + </configuration> + </plugin> + </plugins> + </build> + + <dependencies> + <dependency> + <groupId>org.projectlombok</groupId> + <artifactId>lombok</artifactId> + <version>1.2.3</version> + <scope>system</scope> + <systemPath>/workspace/lombok.jar</systemPath> + </dependency> + </dependencies> + +</project>
\ No newline at end of file diff --git a/docker/maven/readme.md b/docker/maven/readme.md new file mode 100644 index 00000000..15887fa5 --- /dev/null +++ b/docker/maven/readme.md @@ -0,0 +1,33 @@ +## Configuration + +[_(general configuration and options)_](../readme.md) + +### `ARG maven=3.5.0` + +The maven version to be used. Supported values: + +- `3.5.0` (default) + +## Example build commands: + +(To be executed from the `<lombokhome>/docker` directory) + +``` +docker build -t lombok-maven-jdk10 -f maven/Dockerfile . + +docker build -t lombok-maven-jdk10 --build-arg lombokjar=lombok-1.16.20.jar -f maven/Dockerfile . +``` + +## Example run commands: + +``` +docker run -it lombok-maven-jdk10 + +docker run --rm -it -v /<lombokhome>/dist/lombok.jar:/workspace/lombok.jar lombok-maven-jdk10 +``` + +## Example container commands: + +``` +mvn compile +``` diff --git a/docker/provision/ant/ant-1.10.1.sh b/docker/provision/ant/ant-1.10.1.sh new file mode 100755 index 00000000..3de7f3d0 --- /dev/null +++ b/docker/provision/ant/ant-1.10.1.sh @@ -0,0 +1,4 @@ +apt-get update && apt-get install -y wget +wget https://archive.apache.org/dist/ant/binaries/apache-ant-1.10.1-bin.tar.gz -O ant.tar.gz +mkdir /usr/local/apache-ant/ && tar xvf ant.tar.gz -C /usr/local/apache-ant/ +mv /usr/local/apache-ant/apache-ant-1.10.1 /usr/local/apache-ant/apache-ant diff --git a/docker/provision/bazel/bazel-0.13.0.sh b/docker/provision/bazel/bazel-0.13.0.sh new file mode 100644 index 00000000..24b50d9a --- /dev/null +++ b/docker/provision/bazel/bazel-0.13.0.sh @@ -0,0 +1,4 @@ +apt-get update && apt-get install -y wget pkg-config zip g++ zlib1g-dev unzip python +wget https://github.com/bazelbuild/bazel/releases/download/0.13.0/bazel-0.13.0-installer-linux-x86_64.sh -O bazel-installer.sh +chmod +x bazel-installer.sh +./bazel-installer.sh --prefix=/opt/bazel
\ No newline at end of file diff --git a/docker/provision/gradle/gradle-4.2.1.sh b/docker/provision/gradle/gradle-4.2.1.sh new file mode 100755 index 00000000..8c300f11 --- /dev/null +++ b/docker/provision/gradle/gradle-4.2.1.sh @@ -0,0 +1,4 @@ +apt-get update && apt-get install -y wget unzip +wget https://services.gradle.org/distributions/gradle-4.2.1-bin.zip -O gradle.zip +mkdir /opt/gradle && unzip -d /opt/gradle gradle.zip +mv /opt/gradle/gradle-4.2.1 /opt/gradle/gradle diff --git a/docker/provision/gradle/gradle-4.7.sh b/docker/provision/gradle/gradle-4.7.sh new file mode 100644 index 00000000..a2e3ebec --- /dev/null +++ b/docker/provision/gradle/gradle-4.7.sh @@ -0,0 +1,4 @@ +apt-get update && apt-get install -y wget unzip +wget https://services.gradle.org/distributions/gradle-4.7-bin.zip -O gradle.zip +mkdir /opt/gradle && unzip -d /opt/gradle gradle.zip +mv /opt/gradle/gradle-4.7 /opt/gradle/gradle diff --git a/docker/provision/jdk/java-10.sh b/docker/provision/jdk/java-10.sh new file mode 100755 index 00000000..10790952 --- /dev/null +++ b/docker/provision/jdk/java-10.sh @@ -0,0 +1,4 @@ +apt-get update && apt-get install -y wget +wget -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/10.0.1+10/fb4372174a714e6b8c52526dc134031e/jdk-10.0.1_linux-x64_bin.tar.gz -O jdk.tar.gz +tar -xzf jdk.tar.gz -C /opt/ +mv /opt/jdk-10.0.1 /opt/jdk diff --git a/docker/provision/jdk/java-8.sh b/docker/provision/jdk/java-8.sh new file mode 100755 index 00000000..44795c6c --- /dev/null +++ b/docker/provision/jdk/java-8.sh @@ -0,0 +1,6 @@ +apt-get update && apt-get install -y software-properties-common +echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | debconf-set-selections +add-apt-repository -y ppa:webupd8team/java +apt-get update && apt-get install -y oracle-java8-installer + +mv /usr/lib/jvm/java-8-oracle /opt/jdk diff --git a/docker/provision/jdk/java-9.sh b/docker/provision/jdk/java-9.sh new file mode 100755 index 00000000..483c1a28 --- /dev/null +++ b/docker/provision/jdk/java-9.sh @@ -0,0 +1,4 @@ +apt-get update && apt-get install -y wget +wget https://download.java.net/java/GA/jdk9/9.0.4/binaries/openjdk-9.0.4_linux-x64_bin.tar.gz -O jdk.tar.gz +tar -xzf jdk.tar.gz -C /opt/ +mv /opt/jdk-9.0.4 /opt/jdk diff --git a/docker/provision/maven/maven-3.5.0.sh b/docker/provision/maven/maven-3.5.0.sh new file mode 100755 index 00000000..3167a964 --- /dev/null +++ b/docker/provision/maven/maven-3.5.0.sh @@ -0,0 +1,4 @@ +apt-get update && apt-get install -y wget +wget https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.5.0/apache-maven-3.5.0-bin.tar.gz -O maven.tar.gz +mkdir /usr/local/apache-maven/ && tar xvf maven.tar.gz -C /usr/local/apache-maven/ +mv /usr/local/apache-maven/apache-maven-3.5.0 /usr/local/apache-maven/apache-maven diff --git a/docker/readme.md b/docker/readme.md new file mode 100644 index 00000000..9939839d --- /dev/null +++ b/docker/readme.md @@ -0,0 +1,32 @@ +## Configuration
+
+### `/workspace`
+
+Each docker image contains a `/workspace` where all relevant files are located.
+
+
+### `ARG lombokjar=lombok.jar`
+
+When building the image, a lombok.jar will be downloaded to `/workspace`. By default, this is the latest released version. You
+can download a specific version by adding `--build-arg lombokjar=lombok-<major.minor.build>.jar`
+
+### `ARG jdk=10`
+
+The jdk version to be used. Supported values:
+
+- `10` (default)
+- `9` (OpenJDK)
+- `8`
+
+The version is also accessible in `JDK_VERSION`.
+
+
+### Use fresh lombok.jar
+If you want to use a lombok.jar from your system, assuming `<lombokhome>` contains the path to the lombok directory (where the .git subdirectory is located)
+you can mount your recently built lombok.jar by providing `-v /<lombokhome>/dist/lombok.jar:/workspace/lombok.jar` to the `docker run` command.
+
+
+## Examples
+
+- [gradle](gradle/readme.md)
+- [maven](maven/readme.md)
diff --git a/docker/shared/lombok.config b/docker/shared/lombok.config new file mode 100644 index 00000000..62f16b08 --- /dev/null +++ b/docker/shared/lombok.config @@ -0,0 +1,4 @@ +lombok.addJavaxGeneratedAnnotation = false
+lombok.anyConstructor.suppressConstructorProperties = true
+
+config.stopBubbling = true
\ No newline at end of file diff --git a/docker/shared/src/main/java/HelloWorld.java b/docker/shared/src/main/java/HelloWorld.java new file mode 100644 index 00000000..f4c30218 --- /dev/null +++ b/docker/shared/src/main/java/HelloWorld.java @@ -0,0 +1,13 @@ +@lombok.Data
+public class HelloWorld {
+ private final int answer;
+
+ public static void main(String... args) {
+ System.out.println(new HelloWorld(42).getAnswer());
+ }
+
+ @FunctionalInterface
+ interface Foo {
+ String name();
+ }
+}
|
