{"id":80096,"date":"2021-08-16T11:27:26","date_gmt":"2021-08-16T09:27:26","guid":{"rendered":"https:\/\/jfrog.com\/?p=80096"},"modified":"2021-08-16T11:27:26","modified_gmt":"2021-08-16T09:27:26","slug":"go-modules-are-awesome-but-there-is-one-tiny-problem","status":"publish","type":"post","link":"https:\/\/jfrog.com\/fr\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/","title":{"rendered":"Les Modules Go Sont G\u00e9niaux, Mais il y a un Petit Probl\u00e8me"},"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\">La plupart des langages et outils de programmation prennent en charge le concept de packages et la plupart du temps, ces packages ont des versions. L\u2019avantage des versions, qu\u2019elles soient utilis\u00e9es par des outils ou non, est qu\u2019elles permettent aux d\u00e9veloppeurs de communiquer clairement les d\u00e9pendances n\u00e9cessaires \u00e0 la g\u00e9n\u00e9ration du produit final.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Depuis ses d\u00e9buts, Go a eu beaucoup de mal \u00e0 g\u00e9rer les versions, ce qui a conduit les d\u00e9veloppeurs \u00e0 construire leurs propres outils, comme <\/span><a href=\"https:\/\/getgb.io\/\" target=\"_blank\" rel=\"noopener noreferrer\"><span style=\"font-weight: 400\">gb<\/span><\/a><span style=\"font-weight: 400\"> et <\/span><a href=\"https:\/\/glide.sh\/\" target=\"_blank\" rel=\"noopener noreferrer\"><span style=\"font-weight: 400\">glide<\/span><\/a><span style=\"font-weight: 400\">. D\u00e9but\u00a02017, l\u2019\u00e9quipe Go a lanc\u00e9 Dep, qui constituait l\u2019exp\u00e9rience officielle de gestion des packages dans Go. Les le\u00e7ons tir\u00e9es de Dep, et d\u2019autres langages, ont conduit \u00e0 la proposition officielle des <\/span><a href=\"https:\/\/go.googlesource.com\/proposal\/+\/master\/design\/24301-versioned-go.md\" target=\"_blank\" rel=\"noopener noreferrer\"><span style=\"font-weight: 400\">modules\u00a0Go<\/span><\/a><span style=\"font-weight: 400\"> qui ont \u00e9t\u00e9 introduits dans Go\u00a01.11.<\/span><\/p>\n<h1><span style=\"font-weight: 400\">Alors, quel est le probl\u00e8me\u00a0?<\/span><\/h1>\n<p><span style=\"font-weight: 400\">Ne vous m\u00e9prenez pas, je suis tr\u00e8s enthousiaste \u00e0 propos de l\u2019introduction des <a href=\"https:\/\/search.gocenter.io\">modules Go<\/a> car ils r\u00e9solvent un tas de probl\u00e8mes. Cela nous \u00e9loigne \u00e9galement du concept affreux de la <\/span><a href=\"https:\/\/medium.com\/jfrogplatform\/golang-dependency-management-doing-it-right-3f214878a188\" target=\"_blank\" rel=\"noopener noreferrer\"><span style=\"font-weight: 400\">gestion des fournisseurs<\/span><\/a><span style=\"font-weight: 400\">. Soyons honn\u00eates, qui veut garder une copie des sources de chaque d\u00e9pendance dans son projet, risquer de perdre toutes les d\u00e9pendances (nous avons appris de <\/span><a href=\"https:\/\/jfrog.com\/fr\/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\">, n\u2019est-ce pas\u00a0?) ou voir ses coll\u00e8gues essayer un peu les nouvelles versions\u00a0?<\/span><\/p>\n<p><span style=\"font-weight: 400\">Ce sont l\u00e0 autant de probl\u00e8mes que les modules Go r\u00e9solvent, et ils introduisent m\u00eame une variable d\u2019environnement appel\u00e9e <a href=\"https:\/\/jfrog.com\/fr\/blog\/why-goproxy-matters-and-which-to-pick\/\">GOPROXY<\/a> qui permet aux d\u00e9veloppeurs d\u2019envoyer toutes les demandes de t\u00e9l\u00e9chargement de modules via un proxy. En soi, c\u2019est \u00e9videmment g\u00e9nial pour les entreprises qui veulent garder un cache des versions (et ne pas t\u00e9l\u00e9charger la d\u00e9pendance \u00e0 chaque fois), garder un \u0153il sur la s\u00e9curit\u00e9 (et limiter l\u2019acc\u00e8s \u00e0 Internet depuis leurs serveurs de build), et bien d\u2019autres raisons. Il y a juste un petit probl\u00e8me, cependant. Le GOPROXY est difficilement utilisable.<\/span><\/p>\n<h1><span style=\"font-weight: 400\">Le probl\u00e8me avec GOPROXY<\/span><\/h1>\n<p><span style=\"font-weight: 400\">Actuellement, l\u2019utilisation de GOPROXY est un exercice de style \u00ab\u00a0tout ou rien\u00a0\u00bb. Cela signifie que toutes les d\u00e9pendances de l\u2019ensemble de votre arborescence de d\u00e9pendances (directes et transitives) doivent \u00eatre r\u00e9solues \u00e0 partir de ce serveur proxy et que le client Go \u00e9chouera si l\u2019une des d\u00e9pendances n\u2019est pas pr\u00e9sente dans ce <a href=\"https:\/\/jfrog.com\/fr\/integration\/go-registry\/\">Registre\u00a0Go<\/a>.<\/span><\/p>\n<p><span style=\"font-weight: 400\">En d\u2019autres termes, si quelqu\u2019un construit une nouvelle application avec <\/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 et <\/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 dans son fichier go.mod et ex\u00e9cute go install avec la variable GOPROXY, le client go \u00e9chouera \u00e0 moins que les deux modules, leurs versions requises et toutes leurs d\u00e9pendances transitives soient disponibles sur ce proxy. Ainsi, \u00e0 moins d\u2019\u00eatre absolument certain que l\u2019ensemble de mon arborescence de d\u00e9pendances peut \u00eatre r\u00e9solue \u00e0 partir du serveur proxy, qui peut \u00eatre interne ou externe, cette approche ne fonctionnera pas.<\/span><\/p>\n<h1><span style=\"font-weight: 400\">Solutions de secours<\/span><\/h1>\n<p><span style=\"font-weight: 400\">Comme pour tout probl\u00e8me, il doit exister une solution, n\u2019est-ce pas\u00a0? En effet\u00a0! En fait, la solution existe d\u00e9j\u00e0. Un fil de discussion dans le d\u00e9p\u00f4t <\/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\"> sur GitHub (lanc\u00e9 par Aaron Schlesinger de l\u2019\u00e9quipe d\u2019Ath\u00e8nes), d\u00e9crit le probl\u00e8me et la solution pour permettre aux proxies de ne fournir que certains modules. Si l\u2019on reprend l\u2019exemple pr\u00e9c\u00e9dent, si l\u2019un des deux modules est disponible sur le proxy et que l\u2019autre ne l\u2019est pas, le build aboutira. Un module sera t\u00e9l\u00e9charg\u00e9 \u00e0 partir du proxy et l\u2019autre sera t\u00e9l\u00e9charg\u00e9 \u00e0 partir d\u2019un syst\u00e8me de contr\u00f4le de version. <\/span><\/p>\n<p><span style=\"font-weight: 400\">La possibilit\u00e9 de disposer d\u2019une telle solution de secours r\u00e9soudrait une partie du probl\u00e8me. Certains proxys de module\u00a0Go, comme <\/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\">, seront en mesure de construire des fichiers go.mod vides \u00e0 partir de ces demandes non r\u00e9solues, ce qui provoque \u00e0 son tour d\u2019autres probl\u00e8mes.<\/span><\/p>\n<h1><span style=\"font-weight: 400\">Finaliser la solution<\/span><\/h1>\n<p><span style=\"font-weight: 400\">La solution id\u00e9ale permettrait aux utilisateurs de sp\u00e9cifier leur GOPROXY, d\u2019utiliser des solutions de secours au cas o\u00f9 le module ne serait pas disponible et, ce qui est important, de t\u00e9l\u00e9charger ces modules sur le proxy. Cette approche signifie que le t\u00e9l\u00e9chargement d\u2019une version d\u2019un module ne sera effectu\u00e9 que par un seul d\u00e9veloppeur et qu\u2019il sera ensuite disponible dans le serveur proxy pour \u00eatre utilis\u00e9 par d\u2019autres d\u00e9veloppeurs et serveurs CI. \u00c9tant donn\u00e9 que certaines entreprises ne permettent pas \u00e0 leurs serveurs de CI de se connecter \u00e0 Internet, cela r\u00e9soudrait vraiment le probl\u00e8me et rendrait les modules Go irr\u00e9prochables pour les d\u00e9veloppeurs. Si vous vous demandez \u00e0 quoi cela peut ressembler, consultez <\/span><a href=\"https:\/\/github.com\/jfrog\/jfrog-cli-go\" target=\"_blank\" rel=\"noopener noreferrer\"><span style=\"font-weight: 400\">CLI JFrog<\/span><\/a><span style=\"font-weight: 400\"> qui int\u00e8gre toute cette logique. Je pense que nous sommes tous d\u2019accord cependant, que c\u2019est une caract\u00e9ristique que nous attendons du langage lui-m\u00eame&#8230;. <\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>La plupart des langages et outils de programmation prennent en charge le concept de packages et la plupart du temps, ces packages ont des versions. L\u2019avantage des versions, qu\u2019elles soient utilis\u00e9es par des outils ou non, est qu\u2019elles permettent aux d\u00e9veloppeurs de communiquer clairement les d\u00e9pendances n\u00e9cessaires \u00e0 la g\u00e9n\u00e9ration du produit final. Depuis ses &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":[9397,9212],"tags":[],"class_list":["post-80096","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-go","category-non-classifiee"],"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>Comment Surmonter les Probl\u00e8mes avec GOPROXY pour Modules\u00a0Go | JFrog CLI<\/title>\n<meta name=\"description\" content=\"Les modules Go ont r\u00e9solu un grand nombre de probl\u00e8mes li\u00e9s \u00e0 l\u2019utilisation de Go, et ont introduit GOPROXY. Mais GOPROXY peut entra\u00eener l\u2019\u00e9chec de vos builds D\u00e9couvrez comment le faire correctement avec JFrog\u00a0CLI.\" \/>\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\/fr\/wp-json\/wp\/v2\/posts\/80096\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Les Modules Go Sont G\u00e9niaux, Mais il y a un Petit Probl\u00e8me\" \/>\n<meta property=\"og:description\" content=\"Les modules Go ont r\u00e9solu un grand nombre de probl\u00e8mes li\u00e9s \u00e0 l\u2019utilisation de Go, et ont introduit GOPROXY. Mais GOPROXY peut entra\u00eener l\u2019\u00e9chec de vos builds D\u00e9couvrez comment le faire correctement avec JFrog\u00a0CLI.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jfrog.com\/fr\/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-08-16T09:27:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/speedmedia.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/http:\/\/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=\"Comment Surmonter les Probl\u00e8mes avec GOPROXY pour Modules\u00a0Go\" \/>\n<meta name=\"twitter:description\" content=\"\u00c0 l\u2019aide de JFrog\u00a0CLI, il est possible de d\u00e9finir des solutions de secours afin que l\u2019acc\u00e8s \u00e0 un module d\u00e9pendant aboutisse toujours. Dites adieu aux builds d\u00e9faillants. En savoir plus &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=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/\"},\"author\":{\"name\":\"Kit Merker\",\"@id\":\"https:\/\/jfrog.com\/fr\/#\/schema\/person\/ba4e79dfec4dca9aec804c08228327b4\"},\"headline\":\"Les Modules Go Sont G\u00e9niaux, Mais il y a un Petit Probl\u00e8me\",\"datePublished\":\"2021-08-16T09:27:26+00:00\",\"dateModified\":\"2021-08-16T09:27:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/\"},\"wordCount\":835,\"publisher\":{\"@id\":\"https:\/\/jfrog.com\/fr\/#organization\"},\"image\":{\"@id\":\"https:\/\/jfrog.com\/fr\/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\",\"Non classifi\u00e9(e)\"],\"inLanguage\":\"fr-FR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/\",\"url\":\"https:\/\/jfrog.com\/fr\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/\",\"name\":\"Comment Surmonter les Probl\u00e8mes avec GOPROXY pour Modules\u00a0Go | JFrog CLI\",\"isPartOf\":{\"@id\":\"https:\/\/jfrog.com\/fr\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/jfrog.com\/fr\/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-08-16T09:27:26+00:00\",\"dateModified\":\"2021-08-16T09:27:26+00:00\",\"description\":\"Les modules Go ont r\u00e9solu un grand nombre de probl\u00e8mes li\u00e9s \u00e0 l\u2019utilisation de Go, et ont introduit GOPROXY. Mais GOPROXY peut entra\u00eener l\u2019\u00e9chec de vos builds D\u00e9couvrez comment le faire correctement avec JFrog\u00a0CLI.\",\"breadcrumb\":{\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jfrog.com\/fr\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/jfrog.com\/fr\/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\/fr\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jfrog.com\/fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Les Modules Go Sont G\u00e9niaux, Mais il y a un Petit Probl\u00e8me\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/jfrog.com\/fr\/#website\",\"url\":\"https:\/\/jfrog.com\/fr\/\",\"name\":\"JFrog\",\"description\":\"Deliver Trusted Software Releases at Speed and Scale\",\"publisher\":{\"@id\":\"https:\/\/jfrog.com\/fr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/jfrog.com\/fr\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/jfrog.com\/fr\/#organization\",\"name\":\"JFrog\",\"url\":\"https:\/\/jfrog.com\/fr\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/jfrog.com\/fr\/#\/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\/fr\/#\/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\/fr\/#\/schema\/person\/ba4e79dfec4dca9aec804c08228327b4\",\"name\":\"Kit Merker\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/jfrog.com\/fr\/#\/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":"Comment Surmonter les Probl\u00e8mes avec GOPROXY pour Modules\u00a0Go | JFrog CLI","description":"Les modules Go ont r\u00e9solu un grand nombre de probl\u00e8mes li\u00e9s \u00e0 l\u2019utilisation de Go, et ont introduit GOPROXY. Mais GOPROXY peut entra\u00eener l\u2019\u00e9chec de vos builds D\u00e9couvrez comment le faire correctement avec JFrog\u00a0CLI.","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\/fr\/wp-json\/wp\/v2\/posts\/80096","og_locale":"fr_FR","og_type":"article","og_title":"Les Modules Go Sont G\u00e9niaux, Mais il y a un Petit Probl\u00e8me","og_description":"Les modules Go ont r\u00e9solu un grand nombre de probl\u00e8mes li\u00e9s \u00e0 l\u2019utilisation de Go, et ont introduit GOPROXY. Mais GOPROXY peut entra\u00eener l\u2019\u00e9chec de vos builds D\u00e9couvrez comment le faire correctement avec JFrog\u00a0CLI.","og_url":"https:\/\/jfrog.com\/fr\/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-08-16T09:27:26+00:00","og_image":[{"width":204,"height":149,"url":"https:\/\/speedmedia.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/http:\/\/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":"Comment Surmonter les Probl\u00e8mes avec GOPROXY pour Modules\u00a0Go","twitter_description":"\u00c0 l\u2019aide de JFrog\u00a0CLI, il est possible de d\u00e9finir des solutions de secours afin que l\u2019acc\u00e8s \u00e0 un module d\u00e9pendant aboutisse toujours. Dites adieu aux builds d\u00e9faillants. En savoir plus >>","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":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jfrog.com\/fr\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/#article","isPartOf":{"@id":"https:\/\/jfrog.com\/fr\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/"},"author":{"name":"Kit Merker","@id":"https:\/\/jfrog.com\/fr\/#\/schema\/person\/ba4e79dfec4dca9aec804c08228327b4"},"headline":"Les Modules Go Sont G\u00e9niaux, Mais il y a un Petit Probl\u00e8me","datePublished":"2021-08-16T09:27:26+00:00","dateModified":"2021-08-16T09:27:26+00:00","mainEntityOfPage":{"@id":"https:\/\/jfrog.com\/fr\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/"},"wordCount":835,"publisher":{"@id":"https:\/\/jfrog.com\/fr\/#organization"},"image":{"@id":"https:\/\/jfrog.com\/fr\/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","Non classifi\u00e9(e)"],"inLanguage":"fr-FR"},{"@type":"WebPage","@id":"https:\/\/jfrog.com\/fr\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/","url":"https:\/\/jfrog.com\/fr\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/","name":"Comment Surmonter les Probl\u00e8mes avec GOPROXY pour Modules\u00a0Go | JFrog CLI","isPartOf":{"@id":"https:\/\/jfrog.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/jfrog.com\/fr\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/#primaryimage"},"image":{"@id":"https:\/\/jfrog.com\/fr\/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-08-16T09:27:26+00:00","dateModified":"2021-08-16T09:27:26+00:00","description":"Les modules Go ont r\u00e9solu un grand nombre de probl\u00e8mes li\u00e9s \u00e0 l\u2019utilisation de Go, et ont introduit GOPROXY. Mais GOPROXY peut entra\u00eener l\u2019\u00e9chec de vos builds D\u00e9couvrez comment le faire correctement avec JFrog\u00a0CLI.","breadcrumb":{"@id":"https:\/\/jfrog.com\/fr\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jfrog.com\/fr\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/jfrog.com\/fr\/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\/fr\/blog\/go-modules-are-awesome-but-there-is-one-tiny-problem\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jfrog.com\/fr\/"},{"@type":"ListItem","position":2,"name":"Les Modules Go Sont G\u00e9niaux, Mais il y a un Petit Probl\u00e8me"}]},{"@type":"WebSite","@id":"https:\/\/jfrog.com\/fr\/#website","url":"https:\/\/jfrog.com\/fr\/","name":"JFrog","description":"Deliver Trusted Software Releases at Speed and Scale","publisher":{"@id":"https:\/\/jfrog.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jfrog.com\/fr\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/jfrog.com\/fr\/#organization","name":"JFrog","url":"https:\/\/jfrog.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/jfrog.com\/fr\/#\/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\/fr\/#\/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\/fr\/#\/schema\/person\/ba4e79dfec4dca9aec804c08228327b4","name":"Kit Merker","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/jfrog.com\/fr\/#\/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\/fr\/wp-json\/wp\/v2\/posts\/80096","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/users\/75"}],"replies":[{"embeddable":true,"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/comments?post=80096"}],"version-history":[{"count":1,"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/posts\/80096\/revisions"}],"predecessor-version":[{"id":80097,"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/posts\/80096\/revisions\/80097"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/media\/42654"}],"wp:attachment":[{"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/media?parent=80096"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/categories?post=80096"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/tags?post=80096"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}