2016-08-25 4 views
1

범위 구문을 사용할 때 SBT가 내 종속성을 해결할 수없는 것 같습니다. sbt/ivy 버전 범위는 해결되지 않지만 정확한 버전은

그래서

libraryDependencies ++= Seq(
    //exact version works i.e.  0.5.3+27 
    //but what we want to work is [0.5.3,) 
    //or I've since moved the build number to the 4th component 0.5.3.+ 
    "company"    %% "project"  % "0.5.3.+", 
    //... 
) 

나는 정확한 버전은 잘 작동 얻을 수 있지만, 버전 구문 중 어느 것도 https://ant.apache.org/ivy/history/2.3.0/ivyfile/dependency.html#revision 에 지정되지 또는 예 http://www.scala-sbt.org/0.13/docs/Library-Management.html 작업에.

나는 주변을 둘러 보았고 여기에 이와 같은 픽스가 있다는 것을 발견했습니다. 0.13.9에 들어가서 0.13.11을 사용하고 있습니다.

첫 번째 버전의 범위는 시맨틱 버전에서 10 메타 데이터가 권장하지 않았기 때문에 사용하고 있었기 때문에 작동하지 않을 때 management docs/Ivy revision docs 라이브러리는 "+로 수정 버전을 끝내십시오."라고 말합니다. 종속성 모듈 "이므로 문제가 발생한 경우 +를 제거하고 GoCD에서 제공하는 빌드 번호 인 4 번째 구성 요소를 추가했습니다. 다시 정확한 버전은 작동하지만 하위 버전은 작동하지 않습니다. SBT에서

나는 두 가지 형식의 URL을 볼 수는 명중 :

  1. https://dl.bintray.com/<username>/내부 자료/<namespace>/<project-name> _2.11/[revision]/<project-name> _2.11- [수정] .pom
  2. http://dl.bintray.com/<username>/내부 자료/<namespace>/<project-name> _2.11/[revision] /ivys/ivy.xml
,536,

여기에 [revision]은 말 그대로 인쇄 된 URL입니다. 꺾쇠 괄호 안에있는 것들은 제 대체물입니다. 그렇다면 왜 내가 issue 2005과 관련이 있다고 생각했는지. SBT 리포지토리 파일이 없습니다.

위의 질문에서 내가 잘못 입력했는데 0.x.x.+이라는 구문으로 버전 범위 작업을 수행하려면 어떻게해야합니까?

답변

0

이 문제를 해결했습니다. Bintray 디렉터리 목록에 유효한 HTTP 링크 (Binary 부분에 대한 크롤링 방지 노력)가 없습니다. 결과적으로 Ivy 해결 프로그램이 게시 된 버전 목록을 가져 오지 못합니다.

Maven 형식에는 사용 가능한 모든 버전을 나열하는 metadata.xml이 포함되어 있기 때문에 Ivy 대신 Maven 레이아웃을 사용합니다. 그래서이 메타 데이터를 얻으려면 Ivy 대신 maven 레이아웃을 사용하여 libs를 다시 게시해야합니다.