diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index c159f852da5..880523191e8 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -129,8 +129,11 @@ jobs:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build Docker Image
- run: ./build-docker.sh
+ run: ./docker-build.sh
- name: build scan target
- run: mvn -V -s settings.xml package -DskipTests=true --no-transfer-progress --batch-mode
+ run: >
+ mvn -V -s settings.xml -pl cli -am
+ package -DskipTests=true
+ --no-transfer-progress --batch-mode
- name: Test Docker Image
- run: ./test-docker.sh
+ run: ./docker-test.sh
diff --git a/.github/workflows/pull_requests.yml b/.github/workflows/pull_requests.yml
index b03fe839ff0..d8db8b1d669 100644
--- a/.github/workflows/pull_requests.yml
+++ b/.github/workflows/pull_requests.yml
@@ -184,8 +184,11 @@ jobs:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build Docker Image
- run: ./build-docker.sh
+ run: ./docker-build.sh
- name: build scan target
- run: mvn -V -s settings.xml package -DskipTests=true --no-transfer-progress --batch-mode
+ run: >
+ mvn -V -s settings.xml -pl cli -am
+ package -DskipTests=true
+ --no-transfer-progress --batch-mode
- name: Test Docker Image
- run: ./test-docker.sh
+ run: ./docker-test.sh
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index de099546a73..834bee4b461 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -155,15 +155,18 @@ jobs:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build Docker Image
- run: ./build-docker.sh
+ run: ./docker-build.sh
- name: build scan target
- run: mvn -s settings.xml package -DskipTests=true --no-transfer-progress --batch-mode
+ run: >
+ mvn -V -s settings.xml -pl cli -am
+ package -DskipTests=true
+ --no-transfer-progress --batch-mode
- name: Test Docker Image
- run: ./test-docker.sh
+ run: ./docker-test.sh
- name: Deploy Docker Image
run: |
echo $DOCKER_TOKEN | docker login -u $DOCKER_USERNAME --password-stdin 2>/dev/null
- ./publish-docker.sh
+ ./docker-publish.sh
release:
name: Publish Release
diff --git a/Dockerfile b/Dockerfile
index fb0960acb02..ca74f6535f4 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -7,8 +7,9 @@ RUN "$JAVA_HOME/bin/jlink" --compress=zip-6 --module-path /opt/java/openjdk/jmod
FROM mcr.microsoft.com/dotnet/runtime:8.0-alpine
ARG VERSION
-ARG POSTGRES_DRIVER_VERSION=42.7.9
-ARG MYSQL_DRIVER_VERSION=9.6.0
+ARG POSTGRES_DRIVER_VERSION
+ARG MYSQL_DRIVER_VERSION
+ARG MAVEN_REPOSITORY_URL="https://repo1.maven.org/maven2"
ARG UID=1000
ARG GID=1000
@@ -34,10 +35,8 @@ RUN apk update
unzip dependency-check-${VERSION}-release.zip -d /usr/share/ && \
rm dependency-check-${VERSION}-release.zip && \
cd /usr/share/dependency-check/plugins && \
- curl -Os "https://jdbc.postgresql.org/download/postgresql-${POSTGRES_DRIVER_VERSION}.jar" && \
- curl -Ls "https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-j-${MYSQL_DRIVER_VERSION}.tar.gz" \
- | tar -xz --directory "/usr/share/dependency-check/plugins" --strip-components=1 --no-same-owner \
- "mysql-connector-j-${MYSQL_DRIVER_VERSION}/mysql-connector-j-${MYSQL_DRIVER_VERSION}.jar" && \
+ curl -fSLO "${MAVEN_REPOSITORY_URL}/org/postgresql/postgresql/${POSTGRES_DRIVER_VERSION}/postgresql-${POSTGRES_DRIVER_VERSION}.jar" && \
+ curl -fSLO "${MAVEN_REPOSITORY_URL}/com/mysql/mysql-connector-j/${MYSQL_DRIVER_VERSION}/mysql-connector-j-${MYSQL_DRIVER_VERSION}.jar" && \
addgroup -S -g ${GID} ${user} && adduser -S -D -u ${UID} -G ${user} ${user} && \
mkdir /usr/share/dependency-check/data && \
chown -R ${user}:0 /usr/share/dependency-check && \
diff --git a/README.md b/README.md
index 9b55d9d7299..c6e6f9ca7d9 100644
--- a/README.md
+++ b/README.md
@@ -356,7 +356,7 @@ To build dependency-check docker image run the command:
```
mvn -s settings.xml install
-./build-docker.sh
+./docker-build.sh
```
License
diff --git a/core/pom.xml b/core/pom.xml
index 284385c976b..e876b7f96f1 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -421,6 +421,13 @@ Copyright (c) 2012 Jeremy Long. All Rights Reserved.
mysql
+
+
+ com.mysql
+ mysql-connector-j
+ ${driver.mysql.version}
+
+
@@ -459,7 +466,7 @@ Copyright (c) 2012 Jeremy Long. All Rights Reserved.
org.postgresql
postgresql
- 42.7.9
+ ${driver.postgresql.version}
diff --git a/coverity_scan.sh b/coverity_scan.sh
deleted file mode 100755
index 368af917a73..00000000000
--- a/coverity_scan.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/bash -e
-
-if [ $TRAVIS_BRANCH = "master" ] && [ $TRAVIS_EVENT_TYPE = "cron" ] ; then
- echo "Executing Coverity Scan"
-
- export COVERITY_SCAN_PROJECT_NAME="jeremylong/DependencyCheck"
- export COVERITY_SCAN_NOTIFICATION_EMAIL="jeremy.long@owasp.org"
- export COVERITY_SCAN_BRANCH_PATTERN="master"
- export COVERITY_SCAN_BUILD_COMMAND="mvn package -Dmaven.test.skip=true"
-
- curl -s https://scan.coverity.com/scripts/travisci_build_coverity_scan.sh | bash
-fi
\ No newline at end of file
diff --git a/build-docker.sh b/docker-build.sh
similarity index 63%
rename from build-docker.sh
rename to docker-build.sh
index 297ecc4cbd7..86354b1f9ba 100755
--- a/build-docker.sh
+++ b/docker-build.sh
@@ -1,15 +1,11 @@
-#!/bin/bash
+#!/usr/bin/env bash
set -euo pipefail
-
-VERSION=$(mvn -q \
- -Dexec.executable="echo" \
- -Dexec.args='${project.version}' \
- --non-recursive \
- org.codehaus.mojo:exec-maven-plugin:3.5.1:exec)
+function mvn_prop() { mvn help:evaluate -q --non-recursive -DforceStdout -Dexpression="$1"; }
+read -r VERSION POSTGRES_DRIVER_VERSION MYSQL_DRIVER_VERSION <<< "$(mvn_prop project.version) $(mvn_prop driver.postgresql.version) $(mvn_prop driver.mysql.version)"
FILE=./cli/target/dependency-check-$VERSION-release.zip
if [ ! -f "$FILE" ]; then
- echo "$FILE does not exist - run 'mvn package' first"
+ echo "$FILE does not exist - run 'mvn package -DskipTests' first"
exit 1
fi
@@ -22,6 +18,7 @@ fi
extra_tag_args="$([[ ! $VERSION = *"SNAPSHOT"* ]] && echo "--tag owasp/dependency-check:latest" || echo "")"
+# shellcheck disable=SC2086
docker buildx build --pull --load --platform linux/amd64,linux/arm64 . \
- --build-arg VERSION=$VERSION \
+ --build-arg "VERSION=$VERSION" --build-arg "POSTGRES_DRIVER_VERSION=$POSTGRES_DRIVER_VERSION" --build-arg "MYSQL_DRIVER_VERSION=$MYSQL_DRIVER_VERSION" \
--tag owasp/dependency-check:$VERSION ${extra_tag_args}
diff --git a/docker-publish.sh b/docker-publish.sh
new file mode 100755
index 00000000000..eaaee6208f2
--- /dev/null
+++ b/docker-publish.sh
@@ -0,0 +1,15 @@
+#!/usr/bin/env bash
+set -euo pipefail
+function mvn_prop() { mvn help:evaluate -q --non-recursive -DforceStdout -Dexpression="$1"; }
+read -r VERSION POSTGRES_DRIVER_VERSION MYSQL_DRIVER_VERSION <<< "$(mvn_prop project.version) $(mvn_prop driver.postgresql.version) $(mvn_prop driver.mysql.version)"
+
+if [[ $VERSION = *"SNAPSHOT"* ]]; then
+ echo "Do not publish a snapshot version of dependency-check"
+ exit 1
+fi
+
+# Build args should match ./docker-build.sh so the builder cache is re-used
+docker buildx build --pull=false --push --platform linux/amd64,linux/arm64 . \
+ --build-arg "VERSION=$VERSION" --build-arg "POSTGRES_DRIVER_VERSION=$POSTGRES_DRIVER_VERSION" --build-arg "MYSQL_DRIVER_VERSION=$MYSQL_DRIVER_VERSION" \
+ --tag owasp/dependency-check:$VERSION \
+ --tag owasp/dependency-check:latest
diff --git a/docker-pullcount.sh b/docker-pullcount.sh
index 143e635f573..247d9f21005 100755
--- a/docker-pullcount.sh
+++ b/docker-pullcount.sh
@@ -1,3 +1,3 @@
-#/bin/bash
-
+#!/usr/bin/env bash
+set -euo pipefail
curl -s https://hub.docker.com/v2/repositories/owasp/dependency-check/ | python3 -c "import sys, json; print(json.load(sys.stdin)['pull_count'])"
\ No newline at end of file
diff --git a/shell-docker.sh b/docker-shell.sh
similarity index 76%
rename from shell-docker.sh
rename to docker-shell.sh
index b95eb8f1bf1..0733f32f527 100755
--- a/shell-docker.sh
+++ b/docker-shell.sh
@@ -1,17 +1,6 @@
-#!/bin/bash -e
-
-VERSION=$(mvn -q \
- -Dexec.executable="echo" \
- -Dexec.args='${project.version}' \
- --non-recursive \
- org.codehaus.mojo:exec-maven-plugin:3.5.1:exec)
-
-SCAN_TARGET="./cli/target/release/lib"
-
-if [ ! -d "$SCAN_TARGET" ]; then
- echo "Scan target does not exist: $SCAN_TARGET"
- exit 1
-fi
+#!/usr/bin/env bash
+set -euo pipefail
+VERSION="$(mvn help:evaluate -q --non-recursive -DforceStdout -Dexpression=project.version)"
OWASPDC_DIRECTORY=$HOME/OWASP-Dependency-Check
DATA_DIRECTORY="$OWASPDC_DIRECTORY/data"
diff --git a/test-docker.sh b/docker-test.sh
similarity index 92%
rename from test-docker.sh
rename to docker-test.sh
index 51d3738e58c..e8084925314 100755
--- a/test-docker.sh
+++ b/docker-test.sh
@@ -1,10 +1,6 @@
-#!/bin/bash -e
-
-VERSION=$(mvn -q \
- -Dexec.executable="echo" \
- -Dexec.args='${project.version}' \
- --non-recursive \
- org.codehaus.mojo:exec-maven-plugin:3.5.1:exec)
+#!/usr/bin/env bash
+set -euo pipefail
+VERSION="$(mvn help:evaluate -q --non-recursive -DforceStdout -Dexpression=project.version)"
SCAN_TARGET="./cli/target/release/lib"
diff --git a/list-changes.sh b/list-changes.sh
index 99eed75c718..01ca0ab0579 100755
--- a/list-changes.sh
+++ b/list-changes.sh
@@ -1,5 +1,6 @@
-#!/bin/bash -e
+#!/usr/bin/env bash
+set -euo pipefail
##https://blogs.sap.com/2018/06/22/generating-release-notes-from-git-commit-messages-using-basic-shell-commands-gitgrep/
-git --no-pager log $(git describe --tags --abbrev=0)..HEAD --pretty=format:" - %s" \
+git --no-pager log "$(git describe --tags --abbrev=0)..HEAD" --pretty=format:" - %s" \
| grep -v ' - Bump' \
| sed -E 's/#([0-9]+)/[#\1](https:\/\/github.com\/dependency-check\/DependencyCheck\/pull\/\1)/g'
diff --git a/pom.xml b/pom.xml
index 599e27c0c42..a46a0272190 100644
--- a/pom.xml
+++ b/pom.xml
@@ -172,6 +172,8 @@ Copyright (c) 2012 - Jeremy Long
4.3.0
3.0.4
2.21.0
+ 42.7.10
+ 9.6.0
5.15.0
diff --git a/prepare-release.sh b/prepare-release.sh
index fce0531ce83..02b2667b95b 100755
--- a/prepare-release.sh
+++ b/prepare-release.sh
@@ -1,9 +1,10 @@
-#!/bin/bash -e
+#!/usr/bin/env bash
+set -euo pipefail
git checkout main
git pull --rebase
-SNAPSHOT=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
+SNAPSHOT=$(mvn help:evaluate -q --non-recursive -DforceStdout -Dexpression=project.version)
RELEASE=${SNAPSHOT/-SNAPSHOT/}
git checkout -b "release-$RELEASE"
diff --git a/publish-docker.sh b/publish-docker.sh
deleted file mode 100755
index ffdcd9e8c06..00000000000
--- a/publish-docker.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/bash -e
-
-VERSION=$(mvn -q \
- -Dexec.executable="echo" \
- -Dexec.args='${project.version}' \
- --non-recursive \
- org.codehaus.mojo:exec-maven-plugin:3.5.1:exec)
-
-if [[ $VERSION = *"SNAPSHOT"* ]]; then
- echo "Do not publish a snapshot version of dependency-check"
- exit 1
-fi
-
-# Build args should match ./build-docker.sh so the builder cache is re-used
-docker buildx build --push --platform linux/amd64,linux/arm64 . \
- --build-arg VERSION=$VERSION \
- --tag owasp/dependency-check:$VERSION \
- --tag owasp/dependency-check:latest
diff --git a/release_stats.sh b/release_stats.sh
index 4d9f28a43c5..52d6c4f20ac 100755
--- a/release_stats.sh
+++ b/release_stats.sh
@@ -1,3 +1,3 @@
-#/bin/bash
-
+#!/usr/bin/env bash
+set -euo pipefail
curl -H "Accept: application/vnd.github.v3+json" https://api.github.com/repos/dependency-check/DependencyCheck/releases| jq -r '.[] | (.tag_name + "," + (.assets[]|(.name+","+(.download_count|tostring))))' | grep -v \.asc | sort
\ No newline at end of file
diff --git a/sha256_cli.sh b/sha256_cli.sh
index 9cc9f3a2965..7a3724f827e 100755
--- a/sha256_cli.sh
+++ b/sha256_cli.sh
@@ -1,5 +1,5 @@
-#/bin/bash
-
+#!/usr/bin/env bash
+set -euo pipefail
ver=$(curl -s https://dependency-check.github.io/DependencyCheck/current.txt)
echo "Version $ver"
wget -q https://github.com/dependency-check/DependencyCheck/releases/download/v$ver/dependency-check-$ver-release.zip