2014-05-10 16 views
6

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?

+2

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

+0

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

+0

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

Trả lời

4

Vấn đề không phải với cấu hình sbt của tôi sau khi tất cả, nhưng với máy chủ lưu trữ của tôi.

Tôi đang sử dụng Artifactory và kho lưu trữ ảnh chụp nhanh được định cấu hình để sử dụng "ảnh chụp nhanh duy nhất" theo mặc định. Các tên tập tin của các ảnh chụp nhanh này được sửa đổi khi chúng được xuất bản để bao gồm dấu thời gian, mà sbt 13.x dường như không hiểu.

Sau khi thay đổi "Hành vi phiên bản chụp nhanh Maven" của kho lưu trữ từ "Duy nhất" thành "Không phải", mọi thứ bắt đầu hoạt động.

Các vấn đề liên quan