我正在使用sbt-本机包构建一个rpm,然后我们存储到一个maven2托管回购通过Nexus。这在Nexus 2中非常有效,但是一旦我们搬到Nexus 3,它就不再接受rpm进入回购系统了。它接受jar、源-jar、源-javadoc和pom,但是当涉及到rpm时,它会产生502个不好的网关错误(我认为这意味着它不符合maven类型?)
java.io.IOException:将操作放到URL http://nexus.snip.com/repository/releases/com/snip/email-dispatcher-consumer/1.0.17/email-dispatcher-consumer-1.0.17.rpm失败,状态代码502:坏网关
两个问题:
( 1)是否有一种方法在Rpm中告诉publishTo publishTo一个不同的连接端点?也许是原始的寄主回购?我尝试了以下几点:
publishTo in Rpm := {
val nexus = "http://nexus.snip.com/"
Some("releases" at nexus + "repository/rpm-build-storage")
}但这并没有达到预期的效果。
( 2)是否有办法像我们在Nexus 2中那样,将rpm推到现有的回购中?
我们对此使用sbt-release,我在发布过程中添加了下面的发布步骤,这在Nexus 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
})发布于 2017-12-30 19:41:54
有没有一种方法可以告诉publishTo在Rpm中使用不同的publishTo连接端点?也许是原始的寄主回购?
是的,有。我得自己摆弄一下sbt。您几乎是正确的,但是sbt/常春藤使用唯一的字符串名称来查找解析器,因此您必须将它们添加到正确的范围中。如果您可以在sbt-本机打包程序上打开一个问题,将其添加到Deployment插件中,那就太棒了。
// 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"))有没有办法将rpm推到现有的回购中,就像我们在Nexus 2中所做的那样?
我不知道:
希望第一个答案能帮助你:)
干杯,新年快乐,穆基
https://stackoverflow.com/questions/47908994
复制相似问题