Skip to content

Instantly share code, notes, and snippets.

@jkutner
Last active September 4, 2018 13:53
Show Gist options
  • Save jkutner/0998a659baee4d2d57adc39de7b62dce to your computer and use it in GitHub Desktop.
Save jkutner/0998a659baee4d2d57adc39de7b62dce to your computer and use it in GitHub Desktop.
#!/usr/bin/env bash
echo "---> Java buildpack"
set -eo pipefail
env_dir=$1/env
cache_dir=$2
jdk_url="https://cdn.azul.com/zulu/bin/zulu8.28.0.1-jdk8.0.163-linux_x64.tar.gz"
jdk_version="1.8.0_163"
maven_url="https://apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz"
maven_version="3.5.4"
# Load user-provided build-time environment variables
if compgen -G "$env_dir/*" > /dev/null; then
for var in "$env_dir"/*; do
declare "$(basename "$var")=$(<"$var")"
done
fi
echo "---> Installing JDK"
rm -rf .jdk
mkdir -p .jdk
wget -q -O - "$jdk_url" | tar pxz -C .jdk --strip-components=1
export PATH=.jdk/bin:$PATH
mkdir -p .profile
cat << EOF > .profile/jdk.sh
export JAVA_HOME=$launch_dir/jdk
if [[ -z \$LD_LIBRARY_PATH ]]; then
export LD_LIBRARY_PATH="\$JAVA_HOME/jre/lib/amd64/server"
else
export LD_LIBRARY_PATH="\$JAVA_HOME/jre/lib/amd64/server:$LD_LIBRARY_PATH"
fi
EOF
fi
mkdir -p $cache_dir/maven_m2
ln -s $cache_dir/maven_m2 $HOME/.m2
MAVEN_OPTS="${MAVEN_OPTS:-"-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap"}"
echo "---> Running Maven Wrapper"
./mvnw clean install -B -DskipTests
# Set default start command
for jarFile in $(find target -maxdepth 1 -name "*.jar" -type f); do
echo "processes = [{ type = \"web\", command = \"java -jar $jarFile\"}]" > "$launch_dir/launch.toml"
break;
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment