Tôi chỉ mới bắt đầu cố gắng thiết lập quy trình làm việc với scala và sbt và tôi đang gặp sự cố với kho lưu trữ của mình. Tôi đang cố gắng xuất bản một thư viện thử nghiệm đơn giản, bao gồm hai dự án và sử dụng nó từ một chương trình khác.SBT không thể tìm thấy ảnh chụp nhanh trong kho lưu trữ maven Artifactory
thư viện mã nguồn của tôi xây dựng chứa sau:
val sharedSettings = Seq(
name := "test-lib",
organization := "com.example",
version := "0.1-SNAPSHOT",
scalaVersion := "2.11.0",
publishTo := Some("Artifactory Realm" at "http://localhost:8081/artifactory/libs-snapshot-local"),
publishMavenStyle := true,
credentials += Credentials(Path.userHome/".ivy2"/".credentials")
)
lazy val root = project.in(file(".")).settings(sharedSettings: _*).aggregate(child1, child2)
lazy val sharedCode = project.settings(sharedSettings: _*)
val child1Settings = sharedSettings ++ Seq(unmanagedSourceDirectories in Compile <++= (unmanagedSourceDirectories in sharedCode) in Compile)
val child2Settings = sharedSettings ++ Seq(unmanagedSourceDirectories in Compile <++= (unmanagedSourceDirectories in sharedCode) in Compile)
lazy val child1 = project.settings(child1Settings: _*)
lazy val child2 = project.settings(child2Settings: _*)
tôi có thể chạy SBT xuất bản sao, và nó tạo ra thư mục com/example/test-lib/XXX
trong repo.
Trong chương trình thử nghiệm của tôi, tôi đã điều sau đây:
scalaVersion := "2.11.0",
resolvers += "Artifactory Realm" at "http://localhost:8081/artifactory/libs-snapshot-local",
libraryDependencies += "com.example" %% "test-lib" % "0.1-SNAPSHOT"
Khi chương trình thử nghiệm cố gắng để biên dịch, nó không thể giải quyết com.example
, bởi vì trong các cách sau:
[warn] ==== Artifactory Realm: tried
[warn] http://localhost:8081/artifactory/libs-snapshot-local/com/example/test-lib_2.11/0.1-SNAPSHOT/test-lib_2.11-0.1-SNAPSHOT.pom
Nhìn vào kho lưu trữ thư mục chính nó, tôi nhận được một dấu thời gian bổ sung trên các tệp pom của tôi:
test-lib_2.11-0.1-20140510.183027-1.pom 10-May-2014 19:30 793 bytes
test-lib_2.11-0.1-20140510.183027-2.pom 10-May-2014 19:30 793 bytes
...
test-lib_2.11-0.1-20140510.183121-9.pom 10-May-2014 19:31 793 bytes
maven-metadata.xml trong thư mục là tham chiếu đến những điều không sao, sbt đang tìm kiếm trực tiếp một tệp pom không có dấu thời gian và không thể tìm thấy nó. Các tệp pom chứa thông tin chính xác.
Tôi đang làm gì sai?
Nó đang tìm kiếm 'my-repo' như là một repo phong cách ivy, nhưng bạn đã xác định nó một cách chính xác trong mẫu của bạn như là một repo phong cách maven. Tuy nhiên, đầu ra của bạn nói 'my-repo' và mẫu của bạn nói' Artifactory Realm' vì vậy bạn đã sửa đổi một cái gì đó khi bạn đăng lên. Chúng ta có thể nhìn thấy bản gốc để chúng ta biết nó được gọi là 'my-repo' từ đâu không. – monkjack
Tốt bắt! Tôi đã rối tung xung quanh với ivy vs maven repos trước đó và phải sao chép nó từ cửa sổ bàn điều khiển sai ... Thực ra tôi hiểu vấn đề nhiều hơn và sẽ điều chỉnh câu hỏi của tôi để phản ánh điều này, một khoảnh khắc. – mseddon
Hãy thử thêm publishMavenStyle: = true vào build.sbt của bạn để có thể xóa dấu thời gian khi bạn đang pubish. – monkjack