{"id":81037,"date":"2021-09-12T13:52:55","date_gmt":"2021-09-12T11:52:55","guid":{"rendered":"https:\/\/jfrog.com\/?p=81037"},"modified":"2021-09-12T13:53:51","modified_gmt":"2021-09-12T11:53:51","slug":"go-modules-are-awesome-but-there-is-one-tiny-problem","status":"publish","type":"post","link":"https:\/\/jfrog.com\/de\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/","title":{"rendered":"Go-Module sind klasse, aber es gibt ein kleines Problem"},"content":{"rendered":"<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-42651\" src=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2019\/01\/20131237\/GoModules_863x300.jpg\" alt=\"Go Modules and JFrog CLI\" width=\"864\" height=\"301\" srcset=\"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2019\/01\/20131237\/GoModules_863x300.jpg?speedsize=w_864 864w, https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2019\/01\/20131237\/GoModules_863x300.jpg?speedsize=w_300 300w, https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2019\/01\/20131237\/GoModules_863x300.jpg?speedsize=w_768 768w\" sizes=\"(max-width: 864px) 100vw, 864px\" \/><\/p>\n<p><span style=\"font-weight: 400\">Die meisten Programmiersprachen und Tools unterst\u00fctzen das Konzept der Pakete und meistens gibt es Versionen dieser Pakete. Das Tolle an Versionen, egal ob sie von Tools verwendet werden oder nicht, ist, dass die Entwickler klar kommunizieren k\u00f6nnen, welche Abh\u00e4ngigkeiten bestehen, um das Endprodukt zu erstellen.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Go hat sich seit seinen Anf\u00e4ngen mit der Versionierung ziemlich schwergetan und das f\u00fchrte dazu, dass Entwickler begonnen haben, ihre eigenen Werkzeuge wie <\/span><a href=\"https:\/\/getgb.io\/\" target=\"_blank\" rel=\"noopener noreferrer\"><span style=\"font-weight: 400\">gb<\/span><\/a><span style=\"font-weight: 400\"> und <\/span><a href=\"https:\/\/glide.sh\/\" target=\"_blank\" rel=\"noopener noreferrer\"><span style=\"font-weight: 400\">glide<\/span><\/a><span style=\"font-weight: 400\"> zusammenzustellen. Anfang 2017 wurde vom Go-Team mit Dep das offizielle Experiment f\u00fcr die Paketverwaltung in Go gestartet. Die mit Dep und anderen Sprachen gesammelten Erfahrungen f\u00fchrten zum offiziellen Vorschlag f\u00fcr <\/span><a href=\"https:\/\/go.googlesource.com\/proposal\/+\/master\/design\/24301-versioned-go.md\" target=\"_blank\" rel=\"noopener noreferrer\"><span style=\"font-weight: 400\">Go-Module<\/span><\/a><span style=\"font-weight: 400\">, die in Go 1.11 eingef\u00fchrt wurden.<\/span><\/p>\n<h1><span style=\"font-weight: 400\">Was ist also das Problem?<\/span><\/h1>\n<p><span style=\"font-weight: 400\">Verstehen Sie mich nicht falsch \u2013 ich bin begeistert von der Einf\u00fchrung der <a href=\"https:\/\/search.gocenter.io\">Go-Module<\/a>, da sie eine Reihe von Problemen l\u00f6sen. Es bringt uns auch weg vom h\u00e4sslichen Konzept des <\/span><a href=\"https:\/\/medium.com\/jfrogplatform\/golang-dependency-management-doing-it-right-3f214878a188\" target=\"_blank\" rel=\"noopener noreferrer\"><span style=\"font-weight: 400\">Vendoring<\/span><\/a><span style=\"font-weight: 400\">. Seien wir ehrlich, wer will schon eine Kopie der Quellen jeder Abh\u00e4ngigkeit in seinem Projekt aufbewahren, riskieren, Abh\u00e4ngigkeiten ganz zu verlieren (wir haben aus <\/span><a href=\"https:\/\/jfrog.com\/de\/blog\/how-not-to-care-about-unpublishgate\/\" target=\"_blank\" rel=\"noopener noreferrer\"><span style=\"font-weight: 400\">left-pad<\/span><\/a><span style=\"font-weight: 400\"> gelernt, stimmts?) oder seine Kollegen ein wenig mit neuen Versionen experimentieren lassen?<\/span><\/p>\n<p><span style=\"font-weight: 400\">All dies sind Probleme, die Go Modules l\u00f6st, und es f\u00fchrt sogar eine Umgebungsvariable namens <a href=\"https:\/\/jfrog.com\/de\/blog\/why-goproxy-matters-and-which-to-pick\/\">GOPROXY<\/a> ein, die es Entwicklern erm\u00f6glicht, alle Modul-Download-Anfragen \u00fcber einen Proxy zu senden. Das an sich ist nat\u00fcrlich gro\u00dfartig f\u00fcr Unternehmen, die einen Cache von Versionen behalten wollen (und nicht jedes Mal die Abh\u00e4ngigkeit herunterladen wollen), die Sicherheit im Auge behalten wollen (und den Zugriff auf das Internet von ihren Build-Servern aus begrenzen wollen) unter vielen anderen Gr\u00fcnden. Allerdings gibt es ein kleines Problem. GOPROXY ist \u00e4u\u00dferst unpraktisch.<\/span><\/p>\n<h1><span style=\"font-weight: 400\">Das Problem mit GOPROXY<\/span><\/h1>\n<p><span style=\"font-weight: 400\">Derzeit ist die Verwendung von GOPROXY eine &quot;Alles-oder-Nichts&quot;-\u00dcbung. Das bedeutet, dass alle Abh\u00e4ngigkeiten in Ihrem gesamten Abh\u00e4ngigkeitsbaum (sowohl direkte als auch transitive) von diesem Proxy-Server aufgel\u00f6st werden m\u00fcssen und der Go-Client fehlschl\u00e4gt, wenn eine der Abh\u00e4ngigkeiten nicht in dieser <a href=\"https:\/\/jfrog.com\/de\/integration\/go-registry\/\">Go-Registry<\/a> vorliegen.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Mit anderen Worten: Wenn jemand eine neue App mit <\/span><a href=\"https:\/\/github.com\/labstack\/echo\" target=\"_blank\" rel=\"noopener noreferrer\"><span style=\"font-weight: 400\">labstack\/echo<\/span><\/a><span style=\"font-weight: 400\"> v3.3.5 und <\/span><a href=\"https:\/\/github.com\/dgrijalva\/jwt-go\" target=\"_blank\" rel=\"noopener noreferrer\"><span style=\"font-weight: 400\">dgrijalva\/jwt-go<\/span><\/a><span style=\"font-weight: 400\"> v3.2.0 in seiner go.mod-Datei erstellt und go install mit gesetzter GOPROXY-Variable ausf\u00fchrt, wird der go-Client fehlschlagen, wenn nicht beide Module, ihre angeforderten Versionen und alle ihre transitiven Abh\u00e4ngigkeiten auf diesem Proxy verf\u00fcgbar sind. Wenn ich also nicht absolut sicher bin, dass mein gesamter Abh\u00e4ngigkeitsbaum vom Proxyserver aufgel\u00f6st werden kann, der intern oder extern sein kann, wird dieser Ansatz nicht funktionieren.<\/span><\/p>\n<h1><span style=\"font-weight: 400\">Fallbacks<\/span><\/h1>\n<p><span style=\"font-weight: 400\">Wie f\u00fcr jedes Problem muss es auch hier eine L\u00f6sung geben, oder? Richtig! Es ist sogar so, dass die L\u00f6sung bereits existiert. Ein Thread im <\/span><a href=\"https:\/\/github.com\/golang\/go\/issues\/26334\" target=\"_blank\" rel=\"noopener noreferrer\"><span style=\"font-weight: 400\">Golang<\/span><\/a><span style=\"font-weight: 400\">-Repository auf GitHub (von Aaron Schlesinger aus dem Athens-Team gestartet) umrei\u00dft das Problem und die L\u00f6sung, die Proxies darauf beschr\u00e4nkt, nur einige Module zu liefern. Erinnern wir uns an das vorherige Beispiel: Wenn eines der beiden Module auf dem Proxy verf\u00fcgbar ist und eines nicht, wird der Build erfolgreich sein. Ein Modul wird vom Proxy heruntergeladen und das andere wird von einem Versionsverwaltungssystem heruntergeladen. <\/span><\/p>\n<p><span style=\"font-weight: 400\">Die Option, einen solchen Fallback zu haben, w\u00fcrde einen Teil des Problems l\u00f6sen. Einige Go-Modul-Proxys, wie <\/span><a href=\"https:\/\/github.com\/gomods\/athens\" target=\"_blank\" rel=\"noopener noreferrer\"><span style=\"font-weight: 400\">Athens<\/span><\/a><span style=\"font-weight: 400\">, sind in der Lage, leere go.mod-Dateien aus diesen nicht aufgel\u00f6sten Anfragen zu konstruieren, was wiederum andere Probleme verursacht.<\/span><\/p>\n<h1><span style=\"font-weight: 400\">Vervollst\u00e4ndigen der L\u00f6sung<\/span><\/h1>\n<p><span style=\"font-weight: 400\">Die ideale L\u00f6sung w\u00fcrde es dem Benutzer erlauben, seine GOPROXY zu spezifizieren, Fallbacks zu verwenden, falls das Modul nicht verf\u00fcgbar ist, und, das ist das Wichtigste, diese Module auf den Proxy hochzuladen. Dieser Ansatz bedeutet, dass immer nur ein Entwickler eine Version eines Moduls herunterl\u00e4dt und es danach im Proxy-Server f\u00fcr die Verwendung durch andere Entwickler und CI-Server zur Verf\u00fcgung steht. Da nicht alle Unternehmen zulassen, dass sich ihre CI-Server mit dem Internet verbinden, w\u00fcrde dies das Problem wirklich l\u00f6sen und Go-Module perfekt f\u00fcr Entwickler machen. Wenn Sie sich fragen, wie das aussehen k\u00f6nnte, dann werfen Sie einen Blick auf die <\/span><a href=\"https:\/\/github.com\/jfrog\/jfrog-cli-go\" target=\"_blank\" rel=\"noopener noreferrer\"><span style=\"font-weight: 400\">JFrog CLI<\/span><\/a><span style=\"font-weight: 400\">, die all diese Logik eingebaut hat. Ich denke, wir sind uns alle einig, dass dies eine Funktion ist, die wir von der Sprache selbst erwarten&#8230; <\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die meisten Programmiersprachen und Tools unterst\u00fctzen das Konzept der Pakete und meistens gibt es Versionen dieser Pakete. Das Tolle an Versionen, egal ob sie von Tools verwendet werden oder nicht, ist, dass die Entwickler klar kommunizieren k\u00f6nnen, welche Abh\u00e4ngigkeiten bestehen, um das Endprodukt zu erstellen. Go hat sich seit seinen Anf\u00e4ngen mit der Versionierung ziemlich &hellip;<\/p>\n","protected":false},"author":75,"featured_media":42654,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[9436,9205],"tags":[],"class_list":["post-81037","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-go-de","category-unkategorisiert"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v22.6 (Yoast SEO v22.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Wie man die Probleme mit GOPROXY f\u00fcr Go-Module \u00fcberwindet | JFrog CLI<\/title>\n<meta name=\"description\" content=\"Mit Go-Modulen wurde eine Reihe von Problemen bei der Verwendung von Go gel\u00f6st und GOPROXY eingef\u00fchrt. Aber GOPROXY kann Ihre Builds zum Scheitern bringen. Erfahren Sie, wie man es mit JFrog CLI richtig macht.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jfrog.com\/de\/wp-json\/wp\/v2\/posts\/81037\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Go-Module sind klasse, aber es gibt ein kleines Problem\" \/>\n<meta property=\"og:description\" content=\"Mit Go-Modulen wurde eine Reihe von Problemen bei der Verwendung von Go gel\u00f6st und GOPROXY eingef\u00fchrt. Aber GOPROXY kann Ihre Builds zum Scheitern bringen. Erfahren Sie, wie man es mit JFrog CLI richtig macht.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jfrog.com\/de\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/\" \/>\n<meta property=\"og:site_name\" content=\"JFrog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/artifrog\" \/>\n<meta property=\"article:published_time\" content=\"2021-09-12T11:52:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-09-12T11:53:51+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/speedmedia.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/https:\/\/media.jfrog.com\/wp-content\/uploads\/2019\/01\/20131236\/GoModules_204x150.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"204\" \/>\n\t<meta property=\"og:image:height\" content=\"149\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Kit Merker\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Wie man die Probleme mit GOPROXY f\u00fcr Go-Module \u00fcberwindet\" \/>\n<meta name=\"twitter:description\" content=\"Mit JFrog CLI k\u00f6nnen Sie Fallbacks definieren, damit der Zugriff auf ein Abh\u00e4ngigkeitsmodul immer erfolgreich ist. Verabschieden Sie sich von fehlgeschlagenen Builds. Mehr erfahren &gt;&gt;\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/jfrog.com\/wp-content\/uploads\/2019\/01\/GoModules_Social.gif\" \/>\n<meta name=\"twitter:creator\" content=\"@jfrog\" \/>\n<meta name=\"twitter:site\" content=\"@jfrog\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kit Merker\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/jfrog.com\/de\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jfrog.com\/de\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/\"},\"author\":{\"name\":\"Kit Merker\",\"@id\":\"https:\/\/jfrog.com\/de\/#\/schema\/person\/ba4e79dfec4dca9aec804c08228327b4\"},\"headline\":\"Go-Module sind klasse, aber es gibt ein kleines Problem\",\"datePublished\":\"2021-09-12T11:52:55+00:00\",\"dateModified\":\"2021-09-12T11:53:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jfrog.com\/de\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/\"},\"wordCount\":709,\"publisher\":{\"@id\":\"https:\/\/jfrog.com\/de\/#organization\"},\"image\":{\"@id\":\"https:\/\/jfrog.com\/de\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2019\/01\/20131236\/GoModules_204x150.jpg\",\"articleSection\":[\"Go\",\"Unkategorisiert\"],\"inLanguage\":\"de-DE\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jfrog.com\/de\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/\",\"url\":\"https:\/\/jfrog.com\/de\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/\",\"name\":\"Wie man die Probleme mit GOPROXY f\u00fcr Go-Module \u00fcberwindet | JFrog CLI\",\"isPartOf\":{\"@id\":\"https:\/\/jfrog.com\/de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/jfrog.com\/de\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/jfrog.com\/de\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2019\/01\/20131236\/GoModules_204x150.jpg\",\"datePublished\":\"2021-09-12T11:52:55+00:00\",\"dateModified\":\"2021-09-12T11:53:51+00:00\",\"description\":\"Mit Go-Modulen wurde eine Reihe von Problemen bei der Verwendung von Go gel\u00f6st und GOPROXY eingef\u00fchrt. Aber GOPROXY kann Ihre Builds zum Scheitern bringen. Erfahren Sie, wie man es mit JFrog CLI richtig macht.\",\"breadcrumb\":{\"@id\":\"https:\/\/jfrog.com\/de\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/#breadcrumb\"},\"inLanguage\":\"de-DE\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jfrog.com\/de\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de-DE\",\"@id\":\"https:\/\/jfrog.com\/de\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/#primaryimage\",\"url\":\"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2019\/01\/20131236\/GoModules_204x150.jpg\",\"contentUrl\":\"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2019\/01\/20131236\/GoModules_204x150.jpg\",\"width\":204,\"height\":149,\"caption\":\"blog goModules\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jfrog.com\/de\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jfrog.com\/de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Go-Module sind klasse, aber es gibt ein kleines Problem\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/jfrog.com\/de\/#website\",\"url\":\"https:\/\/jfrog.com\/de\/\",\"name\":\"JFrog\",\"description\":\"Deliver Trusted Software Releases at Speed and Scale\",\"publisher\":{\"@id\":\"https:\/\/jfrog.com\/de\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/jfrog.com\/de\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"de-DE\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/jfrog.com\/de\/#organization\",\"name\":\"JFrog\",\"url\":\"https:\/\/jfrog.com\/de\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de-DE\",\"@id\":\"https:\/\/jfrog.com\/de\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2025\/05\/27095207\/Logo.svg\",\"contentUrl\":\"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2025\/05\/27095207\/Logo.svg\",\"width\":74,\"height\":73,\"caption\":\"JFrog\"},\"image\":{\"@id\":\"https:\/\/jfrog.com\/de\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/artifrog\",\"https:\/\/x.com\/jfrog\",\"https:\/\/www.linkedin.com\/company\/455737\",\"https:\/\/www.youtube.com\/channel\/UCh2hNg76zo3d1qQqTWIQxDg\",\"https:\/\/www.wikidata.org\/wiki\/Q98608948\"],\"description\":\"We set out on our Liquid Software journey in 2008, with the mission to transform the way enterprises manage and release software updates. The world expects software to update continuously, securely, non-intrusively and without user intervention. This hyper-connected experience can only be enabled by automation with an end-to-end DevOps platform and a binary-centric focus. With this in mind, we\u2019ve developed the JFrog Platform, ushering in a new era of DevOps and DevSecOps standards that power continuous updates. More than a decade after our founding, with thousands of customers and millions of users globally, JFrog has become the \u201cDatabase of DevOps\u201d and the de-facto standard in release and update management.\",\"legalName\":\"Jfrog, Inc.\",\"numberOfEmployees\":{\"@type\":\"QuantitativeValue\",\"minValue\":\"1001\",\"maxValue\":\"5000\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/jfrog.com\/de\/#\/schema\/person\/ba4e79dfec4dca9aec804c08228327b4\",\"name\":\"Kit Merker\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de-DE\",\"@id\":\"https:\/\/jfrog.com\/de\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1e40785b6a4d6f47a66f874486c2b47299fb19d6845ee3fa83658ae7344fb17a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/1e40785b6a4d6f47a66f874486c2b47299fb19d6845ee3fa83658ae7344fb17a?s=96&d=mm&r=g\",\"caption\":\"Kit Merker\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Wie man die Probleme mit GOPROXY f\u00fcr Go-Module \u00fcberwindet | JFrog CLI","description":"Mit Go-Modulen wurde eine Reihe von Problemen bei der Verwendung von Go gel\u00f6st und GOPROXY eingef\u00fchrt. Aber GOPROXY kann Ihre Builds zum Scheitern bringen. Erfahren Sie, wie man es mit JFrog CLI richtig macht.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/jfrog.com\/de\/wp-json\/wp\/v2\/posts\/81037","og_locale":"de_DE","og_type":"article","og_title":"Go-Module sind klasse, aber es gibt ein kleines Problem","og_description":"Mit Go-Modulen wurde eine Reihe von Problemen bei der Verwendung von Go gel\u00f6st und GOPROXY eingef\u00fchrt. Aber GOPROXY kann Ihre Builds zum Scheitern bringen. Erfahren Sie, wie man es mit JFrog CLI richtig macht.","og_url":"https:\/\/jfrog.com\/de\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/","og_site_name":"JFrog","article_publisher":"https:\/\/www.facebook.com\/artifrog","article_published_time":"2021-09-12T11:52:55+00:00","article_modified_time":"2021-09-12T11:53:51+00:00","og_image":[{"width":204,"height":149,"url":"https:\/\/speedmedia.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/https:\/\/media.jfrog.com\/wp-content\/uploads\/2019\/01\/20131236\/GoModules_204x150.jpg","type":"image\/jpeg"}],"author":"Kit Merker","twitter_card":"summary_large_image","twitter_title":"Wie man die Probleme mit GOPROXY f\u00fcr Go-Module \u00fcberwindet","twitter_description":"Mit JFrog CLI k\u00f6nnen Sie Fallbacks definieren, damit der Zugriff auf ein Abh\u00e4ngigkeitsmodul immer erfolgreich ist. Verabschieden Sie sich von fehlgeschlagenen Builds. Mehr erfahren >>","twitter_image":"https:\/\/jfrog.com\/wp-content\/uploads\/2019\/01\/GoModules_Social.gif","twitter_creator":"@jfrog","twitter_site":"@jfrog","twitter_misc":{"Written by":"Kit Merker","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jfrog.com\/de\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/#article","isPartOf":{"@id":"https:\/\/jfrog.com\/de\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/"},"author":{"name":"Kit Merker","@id":"https:\/\/jfrog.com\/de\/#\/schema\/person\/ba4e79dfec4dca9aec804c08228327b4"},"headline":"Go-Module sind klasse, aber es gibt ein kleines Problem","datePublished":"2021-09-12T11:52:55+00:00","dateModified":"2021-09-12T11:53:51+00:00","mainEntityOfPage":{"@id":"https:\/\/jfrog.com\/de\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/"},"wordCount":709,"publisher":{"@id":"https:\/\/jfrog.com\/de\/#organization"},"image":{"@id":"https:\/\/jfrog.com\/de\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/#primaryimage"},"thumbnailUrl":"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2019\/01\/20131236\/GoModules_204x150.jpg","articleSection":["Go","Unkategorisiert"],"inLanguage":"de-DE"},{"@type":"WebPage","@id":"https:\/\/jfrog.com\/de\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/","url":"https:\/\/jfrog.com\/de\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/","name":"Wie man die Probleme mit GOPROXY f\u00fcr Go-Module \u00fcberwindet | JFrog CLI","isPartOf":{"@id":"https:\/\/jfrog.com\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/jfrog.com\/de\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/#primaryimage"},"image":{"@id":"https:\/\/jfrog.com\/de\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/#primaryimage"},"thumbnailUrl":"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2019\/01\/20131236\/GoModules_204x150.jpg","datePublished":"2021-09-12T11:52:55+00:00","dateModified":"2021-09-12T11:53:51+00:00","description":"Mit Go-Modulen wurde eine Reihe von Problemen bei der Verwendung von Go gel\u00f6st und GOPROXY eingef\u00fchrt. Aber GOPROXY kann Ihre Builds zum Scheitern bringen. Erfahren Sie, wie man es mit JFrog CLI richtig macht.","breadcrumb":{"@id":"https:\/\/jfrog.com\/de\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/#breadcrumb"},"inLanguage":"de-DE","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jfrog.com\/de\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/"]}]},{"@type":"ImageObject","inLanguage":"de-DE","@id":"https:\/\/jfrog.com\/de\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/#primaryimage","url":"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2019\/01\/20131236\/GoModules_204x150.jpg","contentUrl":"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2019\/01\/20131236\/GoModules_204x150.jpg","width":204,"height":149,"caption":"blog goModules"},{"@type":"BreadcrumbList","@id":"https:\/\/jfrog.com\/de\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jfrog.com\/de\/"},{"@type":"ListItem","position":2,"name":"Go-Module sind klasse, aber es gibt ein kleines Problem"}]},{"@type":"WebSite","@id":"https:\/\/jfrog.com\/de\/#website","url":"https:\/\/jfrog.com\/de\/","name":"JFrog","description":"Deliver Trusted Software Releases at Speed and Scale","publisher":{"@id":"https:\/\/jfrog.com\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jfrog.com\/de\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"de-DE"},{"@type":"Organization","@id":"https:\/\/jfrog.com\/de\/#organization","name":"JFrog","url":"https:\/\/jfrog.com\/de\/","logo":{"@type":"ImageObject","inLanguage":"de-DE","@id":"https:\/\/jfrog.com\/de\/#\/schema\/logo\/image\/","url":"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2025\/05\/27095207\/Logo.svg","contentUrl":"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2025\/05\/27095207\/Logo.svg","width":74,"height":73,"caption":"JFrog"},"image":{"@id":"https:\/\/jfrog.com\/de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/artifrog","https:\/\/x.com\/jfrog","https:\/\/www.linkedin.com\/company\/455737","https:\/\/www.youtube.com\/channel\/UCh2hNg76zo3d1qQqTWIQxDg","https:\/\/www.wikidata.org\/wiki\/Q98608948"],"description":"We set out on our Liquid Software journey in 2008, with the mission to transform the way enterprises manage and release software updates. The world expects software to update continuously, securely, non-intrusively and without user intervention. This hyper-connected experience can only be enabled by automation with an end-to-end DevOps platform and a binary-centric focus. With this in mind, we\u2019ve developed the JFrog Platform, ushering in a new era of DevOps and DevSecOps standards that power continuous updates. More than a decade after our founding, with thousands of customers and millions of users globally, JFrog has become the \u201cDatabase of DevOps\u201d and the de-facto standard in release and update management.","legalName":"Jfrog, Inc.","numberOfEmployees":{"@type":"QuantitativeValue","minValue":"1001","maxValue":"5000"}},{"@type":"Person","@id":"https:\/\/jfrog.com\/de\/#\/schema\/person\/ba4e79dfec4dca9aec804c08228327b4","name":"Kit Merker","image":{"@type":"ImageObject","inLanguage":"de-DE","@id":"https:\/\/jfrog.com\/de\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/1e40785b6a4d6f47a66f874486c2b47299fb19d6845ee3fa83658ae7344fb17a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1e40785b6a4d6f47a66f874486c2b47299fb19d6845ee3fa83658ae7344fb17a?s=96&d=mm&r=g","caption":"Kit Merker"}}]}},"_links":{"self":[{"href":"https:\/\/jfrog.com\/de\/wp-json\/wp\/v2\/posts\/81037","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jfrog.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jfrog.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jfrog.com\/de\/wp-json\/wp\/v2\/users\/75"}],"replies":[{"embeddable":true,"href":"https:\/\/jfrog.com\/de\/wp-json\/wp\/v2\/comments?post=81037"}],"version-history":[{"count":2,"href":"https:\/\/jfrog.com\/de\/wp-json\/wp\/v2\/posts\/81037\/revisions"}],"predecessor-version":[{"id":81044,"href":"https:\/\/jfrog.com\/de\/wp-json\/wp\/v2\/posts\/81037\/revisions\/81044"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jfrog.com\/de\/wp-json\/wp\/v2\/media\/42654"}],"wp:attachment":[{"href":"https:\/\/jfrog.com\/de\/wp-json\/wp\/v2\/media?parent=81037"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jfrog.com\/de\/wp-json\/wp\/v2\/categories?post=81037"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jfrog.com\/de\/wp-json\/wp\/v2\/tags?post=81037"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}