Nexusバージョンのアップグレード中です。このプロセスの一環として、古いNexusインスタンスと並行して動作する新しいNexusインスタンスを設定しました。SBTの複数のリポジトリに公開するには?
新しいインスタンスに移行する際に、古いインスタンスのプラグをプルする前に、新しいインスタンスを完全にテストして検証したいと考えています。このため、ワークフローをpublish
のワークフローに一時的に変更して、sbtが両方のNexusインスタンスにアーティファクトを公開するようにしてください。
私は非常に次のコードは、実際に動作しないだろう:
publishTo <<= (version) {
version: String =>
if (version.trim.endsWith("SNAPSHOT")) Some("snapshots" at "http://maven1.dev.net:8081/nexus/content/" + "repositories/snapshots/")
else Some("releases" at "http://maven1.dev.net:8081/nexus/content/" + "repositories/releases/")
},
credentials += Credentials("Sonatype Nexus Repository Manager", "maven1.dev.net", "release-eng", "release"),
publishTo <<= (version) {
version: String =>
if (version.trim.endsWith("SNAPSHOT")) Some("snapshots" at "http://maven2.dev.net:8081/nexus/content/" + "repositories/snapshots/")
else Some("releases" at "http://maven2.dev.net:8081/nexus/content/" + "repositories/releases/")
},
credentials += Credentials("Sonatype Nexus Repository Manager", "maven2.dev.net", "release-eng", "release"),
私もsbt-multi-publish呼ばれるプラグインを検討していますが、私はどちらか、それをコンパイルして使用することができませんでしみました。 、これにより
def myPublishTo = Command.command("myPublishTo") { state =>
val extracted = Project.extract(state)
Project.runTask(
publish in Compile,
extracted.append(List(publishTo := Some(Resolver.file("file", target.value/"xxx"))), state),
true
)
Project.runTask(
publish in Compile,
extracted.append(List(publishTo := Some(Resolver.file("file", target.value/"yyy"))), state),
true
)
state
}
commands += myPublishTo
他のコマンド/タスクとしてmyPublishTo
を実行します。元publish
タスクを実行する前にpublishTo
設定を変更する - myPublishTo
-
あなたはsbt-multi-publishを見ると正しくなっています。あなたはそれを使用しようとしたときに遭遇した問題を反映するために質問を更新できますか? (build.sbt、project/*。sbt、project/*。scalaの内容を提供してください) – Jean