我在将Play的应用程序分发zip文件发布到远程maven存储库时遇到问题.
有很多帖子和博客,但似乎没有什么对我有用.它们要么不完整要么过时.
例如,这里有一个摘录:
val distHack = TaskKey[sbt.File]("dist-hack", "Hack to publish dist")
val myDistSettings = Seq[Setting[_]] (
publish <<= (publish) dependsOn play.Project.dist,
publishLocal <<= (publishLocal) dependsOn play.Project.dist,
artifact in distHack ~= { (art: Artifact) =>
art.copy(`type` = "zip", extension = "zip")
},
distHack <<= (distDirectory, version) map { (d, v) =>
val packageName = "%s-%s" format(projectName, v)
val zip = d / (packageName + ".zip")
zip
}
) ++ Seq(addArtifact(artifact in distHack, distHack).settings: _*)
Run Code Online (Sandbox Code Playgroud)
play.Project.dist不再是最新版本游戏中对"dist"的有效引用.
另外,如何正确指定"distDirectory"以及从哪里获取"projectName"?
此外,大多数示例都是为了在构建的.scala文件中包含代码.我想简单地在我的build的.sbt文件中指定它.
如果这种方法适用于任何人,请您发一个完整的例子吗?
谢谢!
我使用此配置build.sbt将zip文件发布到远程maven仓库.
lazy val dist = com.typesafe.sbt.SbtNativePackager.NativePackagerKeys.dist
publish <<= (publish) dependsOn dist
publishLocal <<= (publishLocal) dependsOn dist
val distHack = TaskKey[File]("dist-hack", "Hack to publish dist")
artifact in distHack ~= { (art: Artifact) => art.copy(`type` = "zip", extension = "zip") }
val distHackSettings = Seq[Setting[_]] (
distHack <<= (target in Universal, normalizedName, version) map { (targetDir, id, version) =>
val packageName = "%s-%s" format(id, version)
targetDir / (packageName + ".zip")
}) ++ Seq(addArtifact(artifact in distHack, distHack).settings: _*)
seq(distHackSettings: _*)
Run Code Online (Sandbox Code Playgroud)
如果您只想发布zip文件而不是其他文物,请将其添加到build.sbt:
publishArtifact in (Compile, packageBin) := false
publishArtifact in (Compile, packageDoc) := false
publishArtifact in (Compile, packageSrc) := false
Run Code Online (Sandbox Code Playgroud)
使用sbt publish的拉链发送到远程回购.当你使用sbt-release时,它也像魅力一样.
| 归档时间: |
|
| 查看次数: |
1456 次 |
| 最近记录: |