खोज…


टिप्पणियों

वेंडरिंग यह सुनिश्चित करने का एक तरीका है कि आपके सभी 3 पार्टी पैकेज जो आप अपने गो प्रोजेक्ट में उपयोग करते हैं, उन सभी के लिए संगत हैं जो आपके एप्लिकेशन के लिए विकसित होते हैं।

जब आपका गो पैकेज दूसरे पैकेज को आयात करता है, तो संकलक सामान्य रूप से आयातित परियोजना के पथ के लिए $GOPATH/src/ जाँच करता है। हालाँकि यदि आपके पैकेज में vendor नाम का फ़ोल्डर है, तो संकलक पहले उस फ़ोल्डर में जाँच करेगा। इसका मतलब यह है कि आप अपने कोड को संशोधित किए बिना, अपने कोड रिपॉजिटरी के अंदर अन्य पार्टियों के पैकेज आयात कर सकते हैं।

वेंडरिंग गो 1.6 और इसके बाद के संस्करण में एक मानक विशेषता है। गो 1.5 में, आपको GO15VENDOREXPERIMENT=1 सक्षम करने के लिए GO15VENDOREXPERIMENT=1 का पर्यावरण चर सेट करना होगा।

बाहरी पैकेज जोड़ने के लिए govendor का उपयोग करें

गोवेंडर एक उपकरण है जिसका उपयोग 3 पार्टी पैकेजों को आपके कोड रिपॉजिटरी में एक तरह से आयात करने के लिए किया जाता है जो कि गोलंग के प्रतिशोध के साथ संगत है।

उदाहरण के लिए कहें कि आप 3rd पार्टी पैकेज bosun.org/slog का उपयोग कर रहे हैं:

package main

import "bosun.org/slog"

func main() {
    slog.Infof("Hello World")
}

आपकी निर्देशिका संरचना इस तरह दिख सकती है:

$GOPATH/src/
├── github.com/me/helloworld/
|   ├── hello.go 
├── bosun.org/slog/
|   ├── ... (slog files)

हालाँकि, जो लोग github.com/me/helloworld को क्लोन करते हैं, उनके पास $GOPATH/src/bosun.org/slog/ नहीं हो सकता है, जिससे उनके पैकेज गुम होने के कारण विफल हो जाते हैं।

अपने कमांड प्रॉम्प्ट पर निम्न कमांड चलाना, आपके गो पैकेज से सभी बाहरी पैकेजों को पकड़ लेगा और आवश्यक बिट्स को एक वेंडर फ़ोल्डर में पैकेज कर देगा:

govendor add +e

यह govendor को आपके वर्तमान रिपॉजिटरी में सभी बाहरी पैकेज जोड़ने का निर्देश देता है।

आपके एप्लिकेशन की निर्देशिका संरचना अब इस तरह दिखाई देगी:

$GOPATH/src/
├── github.com/me/helloworld/
|   ├── vendor/
|   |   ├── bosun.org/slog/
|   |   |   ├── ... (slog files)
|   ├── hello.go 

और जो आपके रिपॉजिटरी को क्लोन करते हैं वे भी आवश्यक 3 पार्टी पैकेजों को हड़प लेंगे।

प्रबंधित करने के लिए ट्रैश का उपयोग करना ।/vendor

trash एक न्यूनतर vendor.conf उपकरण है जिसे आप vendor.conf फ़ाइल से कॉन्फ़िगर करते हैं। यह उदाहरण trash खुद के लिए है:

# package
github.com/rancher/trash

github.com/Sirupsen/logrus                      v0.10.0
github.com/urfave/cli                           v1.18.0
github.com/cloudfoundry-incubator/candiedyaml   99c3df8  https://github.com/imikushin/candiedyaml.git
github.com/stretchr/testify                     v1.1.3
github.com/davecgh/go-spew                      5215b55
github.com/pmezard/go-difflib                   792786c
golang.org/x/sys                                a408501

पहली गैर-टिप्पणी लाइन वह पैकेज है जिसे हम प्रबंधित कर रहे हैं। / नोट के लिए (ध्यान दें: यह आपके प्रोजेक्ट में शाब्दिक रूप से कोई भी पैकेज हो सकता है, न कि केवल रूट एक)।

टिप्पणी लाइनें # शुरू होती हैं।

प्रत्येक गैर-खाली और गैर-टिप्पणी लाइन एक निर्भरता को सूचीबद्ध करती है। केवल निर्भरता के "रूट" पैकेज को सूचीबद्ध करने की आवश्यकता है।

पैकेज नाम के बाद संस्करण (कमिट, टैग या शाखा) और वैकल्पिक रूप से पैकेज रिपॉजिटरी URL (डिफ़ॉल्ट रूप से, यह पैकेज के नाम से अनुमानित है) जाता है।

अपने ./vendor dir को पॉप्युलेट करने के लिए, आपको मौजूदा dir में vendor.conf फाइल करना होगा और बस चलाना होगा:

$ trash

ट्रैश किए गए पुस्तकालयों को ~/.trash-cache (डिफ़ॉल्ट रूप से), चेकआउट अनुरोधित संस्करणों में ./vendor कर ./vendor । फाइलों को ./vendor dir और prune नॉन-इम्पोर्टेड पैकेज और टेस्ट फाइलों में कॉपी कर ./vendor । यह अंतिम चरण आपके ./vendor को दुबला और क्षुद्र बनाए रखता है और आपके प्रोजेक्ट रेपो में स्थान बचाने में मदद करता है।

नोट: जैसा कि v0.2.5 ट्रैश लिनक्स और macOS के लिए उपलब्ध है, और git के सबसे लोकप्रिय एक के रूप में पैकेज को पुनः प्राप्त करने के लिए git का समर्थन करता है, लेकिन हम उन सभी अन्य को जोड़ने पर काम कर रहे हैं जिन्हें समर्थन go get है।

गोलंग / dep का प्रयोग करें

golang / dep एक प्रोटोटाइप निर्भरता प्रबंधन उपकरण है। जल्द ही एक आधिकारिक संस्करण उपकरण होगा। वर्तमान स्थिति अल्फा

प्रयोग

के माध्यम से उपकरण प्राप्त करें

$ go get -u github.com/golang/dep/...

एक नए रेपो पर विशिष्ट उपयोग हो सकता है

$ dep init
$ dep ensure -update

एक नए संस्करण के लिए एक निर्भरता को अद्यतन करने के लिए, आप चला सकते हैं

$ dep ensure github.com/pkg/errors@^0.8.0

ध्यान दें कि अब प्रकट और लॉक फ़ाइल स्वरूपों को अंतिम रूप दिया गया है । उपकरण बदलते ही ये संगत भी रहेंगे।

Gov.or Gov Govor टूल का उपयोग करके

# It creates vendor folder and vendor.json inside it
govendor init

# Add dependencies in vendor.json
govendor fetch <dependency>

# Usage on new repository
# fetch depenencies in vendor.json
govendor sync

उदाहरण विक्रेता। json

{

"comment": "",
"ignore": "test",
"package": [
    {
        "checksumSHA1": "kBeNcaKk56FguvPSUCEaH6AxpRc=",
        "path": "github.com/golang/protobuf/proto",
        "revision": "2bba0603135d7d7f5cb73b2125beeda19c09f4ef",
        "revisionTime": "2017-03-31T03:19:02Z"
    },
    {
        "checksumSHA1": "1DRAxdlWzS4U0xKN/yQ/fdNN7f0=",
        "path": "github.com/syndtr/goleveldb/leveldb/errors",
        "revision": "8c81ea47d4c41a385645e133e15510fc6a2a74b4",
        "revisionTime": "2017-04-09T01:48:31Z"
    }
],
"rootPath": "github.com/sample"

}


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow