2013-08-28 39 views
8

Đến từ một thế giới python/django, nó sẽ là tuyệt vời để có một cái gì đó giống như một requirements.txt tương đương cho go/revel. Tôi có thể làm cái này như thế nào? Tôi biết tôi chỉ có thể viết một tệp requirements.txt và sau đó thực hiện một cái gì đó nhưGolang requirements.txt tương đương

cat reqiurements.txt | xargs go get 

Nhưng nếu yêu cầu của tôi C haveNG CÓ yêu cầu thì sao? Lệnh trên sẽ cố gắng "đi lấy" chúng, và sau đó họ sẽ không xây dựng được, vì tôi không có các yêu cầu đó được cài đặt.

Có điều gì tôi thiếu không?

+5

'đi get' nên lấy tất cả các yêu cầu cần thiết cho mỗi gói. Bạn không cần phải chỉ định chúng. Hãy thử nó và xem nếu nó làm những gì bạn yêu cầu. – Intermernet

Trả lời

13

Lệnh go get thực hiện chính xác những gì bạn cần: Nó tìm tất cả các phụ thuộc và tải xuống và cài đặt các phần còn thiếu. Tập trung vào "tất cả": go get thực sự duyệt qua biểu đồ phụ thuộc của bạn.

Có xem xét các tài liệu:

http://golang.org/cmd/go/#hdr-Download_and_install_packages_and_dependencies

Tài liệu Go thực sự sạch, ngắn và cũng bằng văn bản. Tôi khuyên bạn nên luôn xem xét tài liệu trước khi đưa ra các giả định dựa trên kinh nghiệm với các công cụ hoặc chuỗi công cụ khác.

+0

Liên kết bạn đã chia sẻ không giải thích cách tôi có thể viết các phụ thuộc của riêng mình. Ngoài ra các nhà phát triển và người dùng có thể có một bộ phụ thuộc khác nhau. – erikbwork

+0

@erikbwork Bạn có thể giải thích "phụ thuộc của riêng tôi" là gì không? Và ý của bạn là gì bởi "bộ phụ thuộc khác nhau" của người dùng và nhà phát triển? Bạn có nghĩ đến các phụ thuộc chỉ cần bởi mã kiểm thử? Nếu vậy: Hãy xử lý điều này (xem cờ dòng lệnh) Nếu bạn nói về các công cụ bổ sung cần thiết (ví dụ: 'go generate' dựa vào yacc hoặc m4) thì hãy lấy đi không phải cho bạn. Hãy tải xuống và xây dựng các gói Go từ nguồn, nó không phải là trình quản lý gói hoặc công cụ cấp phép hệ thống. – Volker

+0

Tôi không biết 'go' vì vậy tôi không thể giải thích nó bằng những điều khoản này cho bạn. Nhưng phần mềm thông thường hiện đại yêu cầu một số gói bổ sung, ví dụ: chương trình của bạn có thể phân tích các tệp yaml. Sau đó, bạn cần thư viện go-yaml trong phiên bản 3.1.5. Nếu bạn chưa bao giờ viết nó xuống một nơi nào đó, tôi nghi ngờ rằng 'đi get' sẽ tìm ra nó. Sự khác biệt giữa nhà phát triển và người dùng chủ yếu là sự ổn định. Nhà phát triển có thể sử dụng phiên bản 3.4.5 thay vì 3.1.5, vì nó chứa tất cả các tính năng mới nhưng có thể bị hỏng. Người dùng nhận được 3.1.5 với bản phát hành mới nhất mặc dù, vì nó phá vỡ ít thường xuyên hơn. – erikbwork

2

Tôi vừa phát hiện ra rằng các anh chàng kubernetes thực sự đã tạo một trang tổng quan cho chính mình here.

Tóm tắt là thế này: Hiện nay ổn định là Glide và đồ chơi mới mát mẻ được gọi dep