|
| 1 | +#!/bin/bash |
| 2 | + |
| 3 | +# exit immediately if a command fails |
| 4 | +set -e |
| 5 | + |
| 6 | +ANT_VERSION=1.10.15 |
| 7 | +PMD_VERSION=7.7.0 |
| 8 | + |
| 9 | +BASEDIR="$(pwd)" |
| 10 | +mkdir -p tools |
| 11 | + |
| 12 | +echo |
| 13 | +echo "=======================================================" |
| 14 | +echo "Downloading ant ${ANT_VERSION}" |
| 15 | +echo "=======================================================" |
| 16 | +export ANT_HOME="${BASEDIR}/tools/apache-ant-${ANT_VERSION}" |
| 17 | +if [ ! -d "${ANT_HOME}" ]; then |
| 18 | + wget --no-verbose "https://dlcdn.apache.org/ant/binaries/apache-ant-${ANT_VERSION}-bin.zip" -O "${BASEDIR}/tools/apache-ant-${ANT_VERSION}-bin.zip" |
| 19 | + unzip -q -d "${BASEDIR}/tools" "${BASEDIR}/tools/apache-ant-${ANT_VERSION}-bin.zip" |
| 20 | + echo "Ant ${ANT_VERSION} installed at ${ANT_HOME}" |
| 21 | +else |
| 22 | + echo "Ant ${ANT_VERSION} already installed: ${ANT_HOME}" |
| 23 | +fi |
| 24 | + |
| 25 | +echo |
| 26 | +echo "=======================================================" |
| 27 | +echo "Downloading PMD ${PMD_VERSION}" |
| 28 | +echo "=======================================================" |
| 29 | +export PMD_HOME="${BASEDIR}/tools/pmd-bin-${PMD_VERSION}" |
| 30 | +if [ ! -d "${PMD_HOME}" ]; then |
| 31 | + if [[ "${PMD_VERSION}" == *-SNAPSHOT ]]; then |
| 32 | + wget --no-verbose https://sourceforge.net/projects/pmd/files/pmd/${PMD_VERSION}/pmd-dist-${PMD_VERSION}-bin.zip/download -O ${BASEDIR}/tools/pmd-dist-${PMD_VERSION}-bin.zip |
| 33 | + else |
| 34 | + wget --no-verbose https://github.com/pmd/pmd/releases/download/pmd_releases%2F${PMD_VERSION}/pmd-dist-${PMD_VERSION}-bin.zip -O ${BASEDIR}/tools/pmd-dist-${PMD_VERSION}-bin.zip |
| 35 | + fi |
| 36 | + unzip -q -d "${BASEDIR}/tools" "${BASEDIR}/tools/pmd-dist-${PMD_VERSION}-bin.zip" |
| 37 | + echo "PMD ${PMD_VERSION} installed at: ${PMD_HOME}" |
| 38 | +else |
| 39 | + echo "PMD ${PMD_VERSION} already installed: ${PMD_HOME}" |
| 40 | +fi |
| 41 | + |
| 42 | + |
| 43 | +echo |
| 44 | +echo "=======================================================" |
| 45 | +echo "Building project..." |
| 46 | +echo "=======================================================" |
| 47 | +${ANT_HOME}/bin/ant -Dpmd.home="$PMD_HOME" clean pmd cpd |
| 48 | + |
| 49 | + |
| 50 | +echo |
| 51 | +echo "=======================================================" |
| 52 | +echo "Verify build/pmd-report.xml..." |
| 53 | +echo "=======================================================" |
| 54 | +grep "${BASEDIR}/src/net/sourceforge/pmd/examples/ant/simpleproject/Main.java" build/pmd-report.xml || (echo -e "\n\n\x1b[31mMissing expected rule violation\e[0m"; exit 1) |
| 55 | + |
| 56 | +echo -e "\n\n\x1b[32mTest successful\e[0m" |
0 commit comments