Here is the scripts to deploy the artifacts and also the nexus staging job.    
#!/bin/bash -ex
TOOLS_PREFIX='/opt/tools'
JAVA_PREFIX="${TOOLS_PREFIX}/java/oracle"
MVN_HOME="${TOOLS_PREFIX}/apache-maven/latest"
JAVA_HOME="${JAVA_PREFIX}/jdk-8/latest"
PATH="${MVN_HOME}/bin:${JAVA_HOME}/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
# Maven plugins
VERSIONS_PLUGIN='org.codehaus.mojo:versions-maven-plugin:2.7'
HELP_PLUGIN='org.apache.maven.plugins:maven-help-plugin:3.1.0'
# Check whether top level pom.xml contains SNAPSHOT version
if ! grep '<version>' pom.xml | grep 'SNAPSHOT' ; then
  echo '-[ Missing SNAPSHOT version in POM! ]-------------------------------------------'
  exit 1
fi
# Compute release versions
SNAPSHOT_VERSION=`mvn -B ${HELP_PLUGIN}:evaluate -Dexpression=project.version 2> /dev/null | grep -E '^[0-9]+(\.[0-9]+)+-SNAPSHOT$'`
if [ -z "${RELEASE_VERSION}" ]; then
  if [ -z ${SNAPSHOT_VERSION} ]; then
    echo '-[ Missing required snapshot version number! ]----------------------------------'
  fi
  RELEASE_VERSION=`echo ${SNAPSHOT_VERSION} | sed -e 's/-SNAPSHOT//'`
fi
# Bash specific code
if [ -z "${NEXT_VERSION}" ]; then
  NEXT_VERSION=`echo ${RELEASE_VERSION} | sed -e 's/\([0-9][0-9]*\.[0-9][0-9]*\).*/\1/'`
  set -f
  NEXT_COMPONENTS=(${RELEASE_VERSION//\./ })
  LAST_INDEX=$((${#NEXT_COMPONENTS[@]} - 1))
  NEXT_COMPONENTS[${LAST_INDEX}]=$((${NEXT_COMPONENTS[${LAST_INDEX}]} + 1))
  NEXT_VERSION=`echo ${NEXT_COMPONENTS[@]} | tr ' ' '.'`'-SNAPSHOT'
fi
RELEASE_TAG="${RELEASE_VERSION}"
RELEASE_BRANCH="${RELEASE_VERSION}"-BRANCH
echo "Current version: ${SNAPSHOT_VERSION}"
echo "Release version: ${RELEASE_VERSION}"
echo "Next version:    ${NEXT_VERSION}"
echo "Release tag:     ${RELEASE_TAG}"
if [ -z "${SNAPSHOT_VERSION}" -o -z "${RELEASE_VERSION}" -o -z "${NEXT_VERSION}" ]; then
  echo '-[ Missing required version numbers! ]------------------------------------------'
  exit 1
fi
if [ ${DRY_RUN} = 'true' ]; then
  echo '-[ Dry run turned on ]----------------------------------------------------------'
  MVN_DEPLOY_ARGS=''
  echo '-[ Skipping GitHub branch and tag checks ]--------------------------------------'
else
  MVN_DEPLOY_ARGS='deploy:deploy'
  GIT_ORIGIN=`git remote`
  echo '-[ Prepare branch ]-------------------------------------------------------------'
  if [[ -n `git branch -r | grep "${GIT_ORIGIN}/${RELEASE_BRANCH}"` ]]; then
    if [ "${OVERWRITE}" = 'true' ]; then
      echo "${GIT_ORIGIN}/${RELEASE_BRANCH} branch already exists, deleting"
      git push --delete origin "${RELEASE_BRANCH}" && true
    else
      echo "Error: ${GIT_ORIGIN}/${RELEASE_BRANCH} branch already exists"
      exit 1
    fi
  fi
  echo '-[ Release tag cleanup ]--------------------------------------------------------'
  if [[ -n `git ls-remote --tags ${GIT_ORIGIN} | grep "${RELEASE_TAG}"` ]]; then
    if [ "${OVERWRITE}" = 'true' ]; then
      echo "${RELEASE_TAG} tag already exists, deleting"
      git push --delete origin "${RELEASE_TAG}" && true
    else
      echo "Error: ${RELEASE_TAG} tag already exists"
      exit 1
    fi
  fi
fi
# Always delete local branch if exists
git branch --delete "${RELEASE_BRANCH}" && true
git checkout -b ${RELEASE_BRANCH}
# Always delete local tag if exists
git tag --delete "${RELEASE_TAG}" && true
# Setup jakartaee-stable-bot account information
git config --global user.email "
jakartaee-stable-bot@xxxxxxxxxxx"
git config --global 
user.name "Eclipse jakartaee-stable Bot"
# Workaround: GPG initialization
gpg --batch --import ${KEYRING}
for fpr in $(gpg --list-keys --with-colons  | awk -F: '/fpr:/ {print $10}' | sort -u);
do
  echo -e "5\ny\n" |  gpg --batch --command-fd 0 --expert --edit-key $fpr trust;
done
# Project identifiers
ARTIFACT_ID=$(mvn -B ${HELP_PLUGIN}:evaluate -Dexpression=project.artifactId | grep -Ev '(^\[)')
GROUP_ID=$(mvn -B ${HELP_PLUGIN}:evaluate -Dexpression=project.groupId | grep -Ev '(^\[)')
echo '-[ Set release version ]--------------------------------------------------------'
# Set release version
mvn -U -C -B \
    -DnewVersion="${RELEASE_VERSION}" \
    -DgenerateBackupPoms=false \
    clean ${VERSIONS_PLUGIN}:set
echo '-[ Commit modified pom.xml files ]----------------------------------------------'
POM_FILES=`git status | grep -E 'modified:.*pom\.xml' | sed -e 's/[[:space:]][[:space:]]*modified:[[:space:]][[:space:]]*//'`
git add ${POM_FILES} && \
git commit -m "Prepare release ${GROUP_ID}:${ARTIFACT_ID}:${RELEASE_VERSION}"
##### Temporary workaround begin
#NEXUS_PLUGIN='org.sonatype.plugins:nexus-staging-maven-plugin:1.6.7'
#NEXUS_PLUGIN_PARAMS='-DnexusUrl=
https://oss.sonatype.org/ -DserverId=ossrh'
#STAGING_PROFILE_ID='7edbe315063867'
#STAGING_DESC="jakartaxmlrpc-${BUILD_ID}"
## Open a new staging repo
#mvn -B ${NEXUS_PLUGIN_PARAMS} ${NEXUS_PLUGIN}:rc-open \
#    -DstagingProfileId="${STAGING_PROFILE_ID}" \
#    -DstagingDescription="${STAGING_DESC}"
## Get the ID of the newly created staging repo
#STAGING_REPO_ID=$(mvn -B ${NEXUS_PLUGIN_PARAMS} ${NEXUS_PLUGIN}:rc-list | \
#    egrep "^\[INFO\] .*\-[0-9]+[ ]+OPEN[ ]+.*${STAGING_DESC}" | \
#    awk '{print $2}' | head -1)
#echo "STAGING_REPO_ID=${STAGING_REPO_ID}"
##### Temporary workaround end
echo '-[ Deploy artifacts to staging repository ]-------------------------------------'
#    -DstagingRepositoryId="${STAGING_REPO_ID}" \
mvn -U -C -B \
    -DskipTests -DadditionalJOption=-Xdoclint:none -Poss-release -Pstaging \
    clean package source:jar javadoc:jar gpg:sign install:install ${MVN_DEPLOY_ARGS}
echo '-[ Tag release ]----------------------------------------------------------------'
git tag "${RELEASE_TAG}" -m "Release ${GROUP_ID}:${ARTIFACT_ID}:${RELEASE_VERSION}"
echo '-[ Set next snapshot version ]--------------------------------------------------'
mvn -U -C -B \
    -DnewVersion="${NEXT_VERSION}" \
    -DgenerateBackupPoms=false \
    clean ${VERSIONS_PLUGIN}:set
echo '-[ Commit modified pom.xml files ]----------------------------------------------'
POM_FILES=`git status | grep -E 'modified:.*pom\.xml' | sed -e 's/[[:space:]][[:space:]]*modified:[[:space:]][[:space:]]*//'`
git add ${POM_FILES} && \
git commit -m "Prepare next development cycle for ${NEXT_VERSION}"
if [ ${DRY_RUN} = 'true' ]; then
  echo '-[ Skipping GitHub update ]-----------------------------------------------------'
else
  echo '-[ Push branch and tag to GitHub ]----------------------------------------------'
  git push origin "${RELEASE_BRANCH}"
  git push origin "${RELEASE_TAG}"
fi
#!/bin/bash -ex
TOOLS_PREFIX='/opt/tools'
JAVA_PREFIX="${TOOLS_PREFIX}/java/oracle"
MVN_HOME="${TOOLS_PREFIX}/apache-maven/latest"
JAVA_HOME="${JAVA_PREFIX}/jdk-8/latest"
PATH="${MVN_HOME}/bin:${JAVA_HOME}/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
# Maven plugins
HELP_PLUGIN='org.apache.maven.plugins:maven-help-plugin:3.1.0'
NEXUS_PLUGIN='org.sonatype.plugins:nexus-staging-maven-plugin:1.6.7'
NEXUS_PLUGIN_PARAMS='-DnexusUrl=
https://oss.sonatype.org/ -DserverId=ossrh'
case "${PROJECT}" in
  'Enterprise-Deployment')
    GIT_REPO='git@xxxxxxxxxx:eclipse-ee4j/enterprise-deployment.git'
    STAGING_NAME='jakartaenterprisedeploy'
  ;;
  'JAX-RPC-API')
    GIT_REPO='git@xxxxxxxxxx:eclipse-ee4j/jax-rpc-api.git'
    STAGING_NAME='jakartaxmlrpc'
  ;;
  'JAXR-API')
    GIT_REPO='git@xxxxxxxxxx:eclipse-ee4j/jaxr-api.git'
    STAGING_NAME='jakartaxmlregistry'
  ;;
  'Management-API')
    GIT_REPO='git@xxxxxxxxxx:eclipse-ee4j/management-api.git'
    STAGING_NAME='jakartamanagementj2ee'
  ;;
  *)
    if [ "${ACTION}" != 'list' ]; then
      echo '-[ Error ]----------------------------------------------------------------------'
      echo 'No project selected, exitting.'
      exit 1
    else
      GIT_REPO=''
    fi
  ;;
esac
if [ -n "${GIT_REPO}" ]; then
  echo '-[ Cloning Project Repository ]-------------------------------------------------'
  git clone ${GIT_REPO} . && git checkout ${BRANCH}
  echo '-[ Reading project identifiers ]------------------------------------------------'
  if [ -n "${BUILD_DIR}" ]; then
    cd ${BUILD_DIR}
  fi
  # Project identifiers
  ARTIFACT_ID=$(mvn -B ${HELP_PLUGIN}:evaluate -Dexpression=project.artifactId | grep -Ev '(^\[)')
  GROUP_ID=$(mvn -B ${HELP_PLUGIN}:evaluate -Dexpression=project.groupId | grep -Ev '(^\[)')
fi
echo "Project:              ${PROJECT} API"
echo "Action:               ${ACTION}"
echo "Repository ID prefix: ${STAGING_NAME}"
echo "Artifact:             ${GROUP_ID}:${ARTIFACT_ID}"
case "${ACTION}" in
  'list')
    echo '-[ Profiles List ]--------------------------------------------------------------'
    mvn -B ${NEXUS_PLUGIN_PARAMS} ${NEXUS_PLUGIN}:rc-list-profiles
    echo '-[ Staging Repository List ]----------------------------------------------------'
    if [ -n "${STAGING_NAME}" ]; then
      mvn -B ${NEXUS_PLUGIN_PARAMS} ${NEXUS_PLUGIN}:rc-list | egrep "^\[INFO\] ${STAGING_NAME}\-[0-9]+[ ]+[A-Z]+[ ]" || true
    else
      mvn -B ${NEXUS_PLUGIN_PARAMS} ${NEXUS_PLUGIN}:rc-list
    fi
    ;;
  'close')
    if [ -z "${VERSION}" ]; then
      echo '-[ Missing version number ]-----------------------------------------------------'
      exit 1
    fi
    STAGING_DESC="${GROUP_ID}:${ARTIFACT_ID}:${VERSION}"
    echo "Project description:  ${STAGING_DESC}"
    echo '-[ Searching for open deployment ]----------------------------------------------'
    # Get the ID of the opem staging repository
#    if [ "${PROJECT}" = 'JAX-RPC-API' ]; then
#      STAGING_REPO_ID=$(mvn -B ${NEXUS_PLUGIN_PARAMS} ${NEXUS_PLUGIN}:rc-list | \
#        egrep "^\[INFO\] .*\-[0-9]+[ ]+OPEN[ ]+.*${STAGING_NAME}" | \
#        awk '{print $2}' | head -1)
#    else
      STAGING_REPO_ID=$(mvn -B ${NEXUS_PLUGIN_PARAMS} ${NEXUS_PLUGIN}:rc-list | \
        egrep "^\[INFO\] ${STAGING_NAME}\-[0-9]+[ ]+OPEN[ ]" | \
        awk '{print $2}' | head -1)
#    fi
    echo "Nexus staging repository ID: ${STAGING_REPO_ID}"
    if [ -n "${STAGING_REPO_ID}" ]; then
      echo '-[ Closing Nexus staging repository ]-------------------------------------------'
      mvn -B ${NEXUS_PLUGIN_PARAMS} ${NEXUS_PLUGIN}:rc-close \
          -DstagingRepositoryId="${STAGING_REPO_ID}" \
          -DstagingDescription="${STAGING_DESC}"
    else
      echo '-[ Delpoyment '${STAGING_NAME}' was not found ]------------------------------------'
    fi
    ;;
  'drop')
    if [ -z "${VERSION}" ]; then
      echo '-[ Searching for deployments ]----------------------------------------------'
      for REPO_ID in $(mvn -B ${NEXUS_PLUGIN_PARAMS} ${NEXUS_PLUGIN}:rc-list | \
        egrep "^\[INFO\] ${STAGING_NAME}\-[0-9]+[ ]+[A-Z]+[ ]" | \
        awk '{print $2}' | head -1); do
        echo '-[ Dropping Nexus staging repository ]------------------------------------------'
        echo "Deployment: ${REPO_ID}"
        mvn -B ${NEXUS_PLUGIN_PARAMS} ${NEXUS_PLUGIN}:rc-drop \
            -DstagingRepositoryId="${REPO_ID}"
      done
    else
      mvn -B ${NEXUS_PLUGIN_PARAMS} ${NEXUS_PLUGIN}:rc-drop \
          -DstagingRepositoryId="${VERSION}"
    fi
    ;;
  release)
    echo '-[ Action denied for security reasons ]-------------------------------------'
    ;;
esac