代码之家  ›  专栏  ›  技术社区  ›  Sanket Tarun Shah

无法让groovy使用gcp库

  •  0
  • Sanket Tarun Shah  · 技术社区  · 7 年前

    我一直在尝试将groovy与gcp java库集成,但它总是抱怨缺少gcp 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
    

    AM使用命令运行上面的命令:

    docker run -ti 8332026e2ddf bash
    

    在哪里?

    8332026E2DDF型

    是我的身份证。

    0 回复  |  直到 7 年前