Với dự án Haskell, có cách nào để tự động tính toán toàn bộ danh sách phụ thuộc không? Tất cả các thư viện nó phụ thuộc vào cũng như các thư viện đã được đưa vào nhưng không bắt buộc.Tự động liệt kê các phụ thuộc cho một dự án
Trả lời
Như tôi đã nói trong phần bình luận, cài đặt cabal đã thực hiện điều này (tôi đang sử dụng cabal-install 0.14.0) bằng cách đoán các gói thông qua tra cứu mô-đun (như GHCi). Nó không có bất kỳ trí thông minh thực sự nào. phiên bản để nó chỉ đặt phiên bản cho phù hợp với phiên bản chính của những gì bạn đã cài đặt.
Dưới đây bạn có thể thấy tôi tạo gói giả mạo nhập Data.Vector
và trình cài đặt cabal-install Tôi đang sử dụng vector 0.9. *.
[[email protected] blah]$ pwd
/tmp/blah
[[email protected] blah]$ cat Data/Blah.hs
module Data.Blah where
import Data.Vector
[[email protected] blah]$ cabal init
Package name? [default: blah]
...SNIP...
What does the package build:
1) Library
2) Executable
Your choice? 1
Include documentation on what each field means (y/n)? [default: n]
Guessing dependencies... <--- SEE, SEE! YAY!
Generating LICENSE...
Warning: unknown license type, you must put a copy in LICENSE yourself.
Generating Setup.hs...
Generating blah.cabal...
You may want to edit the .cabal file and add a Description field.
[[email protected] blah]$ cat blah.cabal
-- Initial blah.cabal generated by cabal init. For further documentation,
-- see http://haskell.org/cabal/users-guide/
name: blah
version: 0.1.0.0
synopsis: Sisponys
-- description:
-- license:
license-file: LICENSE
author: Me
maintainer: [email protected]
-- copyright:
-- category:
build-type: Simple
cabal-version: >=1.8
library
exposed-modules: Data.Blah
-- other-modules:
build-depends: base ==4.5.*, vector ==0.9.* <-- SEE?? SEE! YIPPEE!!
Tôi đang sử dụng 'cabal-install version 0.10.2'. Đó là phiên bản được đóng gói cùng với nền tảng Haskell, vì vậy tôi đoán đây là chức năng gần đây. –
@VladtheImpala Tôi đoán bạn cần bản phát hành mới nhất 0.14.0. Nó bao gồm các cải tiến 'cabal init' khác nhau. –
- 1. Tự động phát hiện phụ thuộc C
- 2. Phụ thuộc dự án Web Eclipse
- 3. Phụ thuộc Maven vs quản lý phụ thuộc cho nhiều dự án
- 4. Groovy Liệt kê tất cả các thuộc tính cho lớp
- 5. CMake: Phụ thuộc của một dự án bên ngoài
- 6. Làm thế nào để liệt kê các phụ thuộc của một JAR
- 7. maven lực xây dựng lại các dự án phụ thuộc (xây dựng phụ thuộc đầu tiên)
- 8. Kiểm tra SBT-phụ thuộc vào Multiprojects: Làm cho mã kiểm tra có sẵn cho các dự án phụ thuộc
- 9. Làm thế nào để liệt kê tất cả các thuộc tính phụ thuộc của kiểm soát?
- 10. Lấy cây phụ thuộc của dự án maven với sự thiếu phụ thuộc
- 11. Thực tiễn tốt nhất: cách bạn liệt kê các phụ thuộc bắt buộc trong setup.py?
- 12. tạo phụ thuộc cho một makefile cho một dự án trong C/C++
- 13. MSBuild 4.5 bỏ qua phụ thuộc của dự án
- 14. Cách lấy qmake để tạo "phụ thuộc dự án" trong dự án Visual Studio .sln
- 15. Cập nhật phụ thuộc Maven tự động
- 16. Không tự động Android UI-Các xét nghiệm trên Jenkins-Server do phụ thuộc lib dự án phức tạp của dự án chính (s)
- 17. liệt kê các gói phụ thuộc python mà không cần tải chúng?
- 18. (Visual) Phân tích phụ thuộc dự án C++
- 19. Sự khác nhau giữa tham chiếu dự án và phụ thuộc dự án là gì?
- 20. dừng liệt kê khối cho một NSDictionary
- 21. Ant xây dựng dự án Android với phụ thuộc lib
- 22. Cách liệt kê tất cả các thuộc tính của lớp
- 23. Tự động liệt kê tất cả các thành viên của một lớp
- 24. Cách tìm phụ thuộc phần đầu cho các dự án quy mô lớn trên linux
- 25. có thể thực hiện dự án plugin phụ thuộc vào dự án java
- 26. Làm cách nào để tải xuống các nguồn phụ thuộc cho dự án Gradle trong IDEA?
- 27. Làm thế nào để có phụ thuộc dự án khác nhau cho mỗi cấu hình dự án?
- 28. Dự án Grails - Java Project chung phụ thuộc trong Eclipse
- 29. Liệt kê R Gói phụ thuộc mà không cần cài đặt gói
- 30. msvcr90.dll phụ thuộc vào dự án VS 2005 C++
Cabal không tìm ra phụ thuộc khi bạn chạy 'cabal init'. Đó có phải là loại chức năng mà bạn đang nghĩ đến không? –
Ở giai đoạn nào? Tôi đã sử dụng init cabal và nó không tìm ra bất kỳ phụ thuộc nào. –
Giai đoạn nào? Giai đoạn mà bạn đã viết một số mã và sẵn sàng để cabalize dự án của bạn (tạo một tệp .cabal). Một phiên bản mới đầy đủ của cabal sẽ đọc các mô-đun và cố gắng suy ra các phụ thuộc. –