2014-12-17 2 views
8

변경 사항이 앱 개발을 위해 푸시 할 때 Nexus에 게시하는 CI 앱에 취업했습니다.SBT 버전이없는 경우에만 게시

./sbt가 멱등 원을 게시 할 수있는 방법이 있습니까? 때문에 때때로 우리는 때문에 일시적인 문제로 작업을 다시 실행하려면, 그것은 함께 오류가 있습니다 : 우리는 버전 번호를 충돌하지했기 때문에

[16:31:24]java.io.IOException: destination file exists and overwrite == false 
[16:31:24] at org.apache.ivy.plugins.repository.url.URLRepository.put(URLRepository.java:75) 
[16:31:24] at org.apache.ivy.plugins.repository.AbstractRepository.put(AbstractRepository.java:130) 
[16:31:24] at sbt.ConvertResolver$ChecksumFriendlyURLResolver$class.put(ConvertResolver.scala:78) 
[16:31:24] at sbt.ConvertResolver$PluginCapableResolver$1.put(ConvertResolver.scala:103) 
[16:31:24] at org.apache.ivy.plugins.resolver.RepositoryResolver.publish(RepositoryResolver.java:216) 

. 지금은 해키로 갈거야 :

./sbt publish || true

그래서 CI에 작업 나던 출구 도보 1 및 오류. 더 좋은 방법이 있습니까?

+0

IMHO, 이것은 매우 우아한 해결책이 될 것입니다. 크로스 - 컴파일 할 때 건너 뛴 다른 버전을 게시 할 필요가있을 때 종종 SBT 구성에 버그가 있습니다. 2.10이 이미 존재하기 때문에 스칼라 2.11에 대한 유물을 게시하지 않고 보석금을 내고 싶지 않습니다. –

답변

0

빌드의 일부로 버전을 참조하거나 REST API를 통해 Nexus에 쿼리하여 빌드를 진행하기 전에 버전이 이미 있는지 확인할 수 있습니다.

11

당신은

isSnapshot := true 

이 단지 파일을 덮어 할 수 있습니다 사용할 수 있습니다. 이 동작은 앞으로 변경 될 수 있습니다.

+0

20160816에이 임시적인 특징이 있기 때문에 정상적으로 사용하는 것이 안전하다고 믿습니다. – pabloa98

관련 문제