Невозможно заставить Groovy работать с библиотеками GCP - PullRequest
0 голосов
/ 06 ноября 2018

Я пытался интегрировать Groovy с библиотеками Java GCP, но постоянно жалуюсь на отсутствие библиотек GAR JAR.

Мой Groovy код:

import static java.lang.String.format;
import static com.google.cloud.storage.Blob;

class GroovyExample {

    String format(Integer i) { 
        System.out.println(i.toString());
        return i.toString();
    }

    static void main(String[] args) {
        assert format('String') == 'String';
        assert new GroovyExample().format(Integer.valueOf(1)) == '1';
    }
}

Команда, которую я использую для запуска Groovy:

groovy -cp ./usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/tools/java/lib/java-managed-vm/appengine-java-vmruntime GroovyExample.groovy

Было бы очень полезно найти решение для запуска этого скрипта Groovy.

Просто чтобы добавить больше и для дальнейшего использования, я пытаюсь запустить это в настроенном контейнере Docker, который я создал с использованием как GCP, так и Groovy. Ниже файл.

FROM google/cloud-sdk:latest
RUN  apt-get update \
  && apt-get install -y wget unzip
CMD ["groovysh"]
ENV GROOVY_HOME /opt/groovy
ENV GROOVY_VERSION 2.5.2
RUN set -o errexit -o nounset \
    && echo "Downloading Groovy" \
    && wget --output-document=groovy.zip "https://dist.apache.org/repos/dist/release/groovy/${GROOVY_VERSION}/distribution/apache-groovy-binary-${GROOVY_VERSION}.zip" \
    \
    && echo "Importing keys listed in http://www.apache.org/dist/groovy/KEYS from key server" \
    && export GNUPGHOME="$(mktemp -d)" \
    && for key in \
        "7FAA0F2206DE228F0DB01AD741321490758AAD6F" \
        "331224E1D7BE883D16E8A685825C06C827AF6B66" \
        "34441E504A937F43EB0DAEF96A65176A0FB1CD0B" \
        "9A810E3B766E089FFB27C70F11B595CEDC4AEBB5" \
        "81CABC23EECA0790E8989B361FF96E10F0E13706" \
    ; do \
        for server in \
            "ha.pool.sks-keyservers.net" \
            "hkp://p80.pool.sks-keyservers.net:80" \
            "pgp.mit.edu" \
        ; do \
            echo "  Trying ${server}"; \
            if gpg --keyserver "${server}" --recv-keys "${key}"; then \
                break; \
            fi; \
        done; \
    done; \
    if [ $(gpg --list-keys | grep -c "pub ") -ne 5 ]; then \
        echo "ERROR: Failed to fetch GPG keys" >&2; \
        exit 1; \
    fi \
    \
    && echo "Checking download signature" \
    && wget --no-verbose --output-document=groovy.zip.asc "https://dist.apache.org/repos/dist/release/groovy/${GROOVY_VERSION}/distribution/apache-groovy-binary-${GROOVY_VERSION}.zip.asc" \
    && gpg --batch --verify groovy.zip.asc groovy.zip \
    && rm --recursive --force "${GNUPGHOME}" \
    && rm groovy.zip.asc \
    \
    && echo "Installing Groovy" \
    && unzip groovy.zip \
    && rm groovy.zip \
    && mv "groovy-${GROOVY_VERSION}" "${GROOVY_HOME}/" \
    && ln --symbolic "${GROOVY_HOME}/bin/grape" /usr/bin/grape \
    && ln --symbolic "${GROOVY_HOME}/bin/groovy" /usr/bin/groovy \
    && ln --symbolic "${GROOVY_HOME}/bin/groovyc" /usr/bin/groovyc \
    && ln --symbolic "${GROOVY_HOME}/bin/groovyConsole" /usr/bin/groovyConsole \
    && ln --symbolic "${GROOVY_HOME}/bin/groovydoc" /usr/bin/groovydoc \
    && ln --symbolic "${GROOVY_HOME}/bin/groovysh" /usr/bin/groovysh \
    && ln --symbolic "${GROOVY_HOME}/bin/java2groovy" /usr/bin/java2groovy \
    \
    && echo "Adding groovy user and group" \
    && groupadd --system --gid 1000 groovy \
    && useradd --system --gid groovy --uid 1000 --shell /bin/bash --create-home groovy \
    && mkdir --parents /home/groovy/.groovy/grapes \
    && chown --recursive groovy:groovy /home/groovy \
    \
    && echo "Symlinking root .groovy to groovy .groovy" \
    && ln -s /home/groovy/.groovy /root/.groovy

Я запускаю вышеуказанную команду, используя команду:

docker run -ti 8332026e2ddf bash

, где

8332026e2ddf

является идентификатором моего изображения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...