2017-12-20 48 views
1

sbt-native-packager를 사용하여 Nexus를 통해 maven2 호스트 된 저장소에 저장하는 rpm을 만듭니다. 이 기능은 Nexus 2에서 훌륭하게 작동했지만 일단 Nexus 3로 이전하면 더 이상 rpm을 repo에 수신하지 않습니다. 그것은 jar, sources-jar, sources-javadoc 및 pom fine을 받아들입니다.하지만 rpm에 대해서는 502 잘못된 게이트웨이 오류가 발생합니다. (이것은 내가 Maven 유형을 따르지 않는다고 생각합니다)Nexus 3에 RPM 게시

때 java.io.IOException가 : 잘못된 게이트웨이

두 질문 :

1) publishTo에 RPM의 다른 넥서스 엔드 포인트를 publishTo을 알 수있는 방법이 있나요 http://nexus.snip.com/repository/releases/com/snip/email-dispatcher-consumer/1.0.17/email-dispatcher-consumer-1.0.17.rpm를 URL에 PUT 작업이 상태 코드 (502)에 실패? 아마도 원시 호스트 레포? 나는 다음을 시도했다 :

publishTo in Rpm := { 
    val nexus = "http://nexus.snip.com/" 
    Some("releases" at nexus + "repository/rpm-build-storage") 
} 

그러나 이것은 원하는 효과가 없었다.

2) Nexus 2에서했던 것처럼 기존 RPG에 rpm을 푸는 방법이 있습니까? 에 RPM에서 publishTo을 알 수있는 방법이 있나요

우리는이와 함께 SBT-버전을 사용하고 난 릴리스 프로세스에 다음 릴리스 단계를 추가하고,이 넥서스 2

val publishRPM = ReleaseStep(action = st => { 
    val extr: Extracted = Project.extract(st) 
    val ref: ProjectRef = extr.get(thisProjectRef) 
    extr.runAggregated(
     publish in Rpm in ref, 
     st 
    ) 
    st 
}) 

답변

1

와 함께 잘 작동 publishTo 다른 넥서스 종점? 아마도 원시 호스트 레포?

예, 있습니다. 나는 약간 sbt로 주위를 약간 고민해야했다. 거의 맞았지만 sbt/ivy는 해석기를 찾기 위해 고유 한 문자열 이름을 사용하므로 올바른 범위에 추가해야합니다. 당신이 Deployment 플러그인에 이것을 추가하기 위해 sbt-native-packager에 관한 문제를 열 ​​수 있다면 그것은 대단 할 것입니다.

// NOT NECESSARY. This resolver is automagically added to the `otherResolvers` setting. 
publishTo := Some(Resolver.file("file-target", target.value/"ivy2")) 

// add your resolver to the `otherResolvers` setting and rpm:publish will find it 
otherResolvers += Resolver.file("file-rpm", target.value/"ivy2-rpm") 
publishTo in Rpm := Some(Resolver.file("file-rpm", target.value/"ivy2-rpm")) 

우리가 넥서스 2에서했던 것처럼 기존의 repo에 RPM을 전달할 수있는 방법이 있습니까?

내가 모르는 :(

희망 첫 번째 대답은

환호와 새해, Muki 당신 :) 도움이

+0

최고 감사합니다! –