Bối cảnh: công ty chúng tôi có một số Play! các ứng dụng có kiểm tra chạy trong CI nội bộ của chúng tôi. Mỗi ứng dụng Play truy xuất các phụ thuộc từ các kho lưu trữ công khai khác nhau trên http. Điều này đã không được lý tưởng (nó bỏ qua kho lưu trữ Nexus nội bộ của chúng tôi) nhưng bearable. Bây giờ chúng tôi đang bổ sung thêm dung lượng CI, và không muốn cho phép các máy mới có thể truy cập bên ngoài tường lửa.Cách xóa tất cả các trình phân giải mặc định khỏi Play! ứng dụng?
Trong một ứng dụng ví dụ Play, cấu hình như sau trong project/Build.scala
là không đủ để ngăn chặn việc xây dựng sẽ repo.typesafe.com
và repo1.maven.org
:
sbtResolver := "Typesafe (proxy)" at "http://repo-1/nexus/content/repositories/typesafe-releases/"
resolvers := Seq(
"Maven Central (proxy)" at "http://repo-1/nexus/content/repositories/central/",
"Typesafe (proxy)" at "http://repo-1/nexus/content/repositories/typesafe-releases/",
// some more internal Nexus repositories
)
externalResolvers := Seq.empty
(repo-1
là chủ Nexus nội bộ của chúng tôi, mà ủy nhiệm Maven Trung ương, typesafe, và các kho lưu trữ khác)
Khi tôi xóa một số phụ thuộc, hoặc từ Trung tâm Maven (ví dụ: Guava) hoặc từ kho lưu trữ của Typesafe (ví dụ plugin Playerer) và chạy play compile
, tôi thấy từ đầu ra là phụ thuộc vẫn còn g lấy từ repo.typesafe.com
và repo1.maven.org
:
[info] downloading http://repo.typesafe.com/typesafe/releases/com/typesafe/play-plugins-mailer_2.9.1/2.0.2/play-plugins-mailer_2.9.1-2.0.2.jar ...
[info] [SUCCESSFUL ] com.typesafe#play-plugins-mailer_2.9.1;2.0.2!play-plugins-mailer_2.9.1.jar (981ms)
[info] downloading http://repo1.maven.org/maven2/com/google/guava/guava/12.0/guava-12.0.jar ...
[info] [SUCCESSFUL ] com.google.guava#guava;12.0!guava.jar (1422ms)
trở nên phức tạp vấn đề, chúng tôi cũng vào hơi phiên bản cũ của tất cả mọi thứ: Scala 2.9.1, 2.0.1 Chơi, SBT 0.11.3.
Làm cách nào để buộc ứng dụng Play truy xuất các phụ thuộc từ một kho lưu trữ nội bộ, độc quyền?
Đây là câu trả lời hay hơn của chính tôi. Sử dụng phương thức này, danh sách kho lưu trữ trong tệp xây dựng của dự án có thể vẫn là 'true', trỏ đến kho thực sự. Sau đó, cá nhân có thể chọn ghi đè dựa trên kho proxy của riêng họ. – Grundlefleck
Tôi đã thử phương pháp này khi tôi nghiên cứu Logam, thật không may là nó không hoạt động. Tôi không lý do tại sao sbt không hỗ trợ cài đặt Maven dễ dàng như Gradle. – Hantsy