Since Play Framework 2.3 assets are packaged into one jar archive file.我想随项目自动发布此 jar,即在 publish
或 publishLocal
时,我也希望发布 Assets jar。
如何实现这一目标?
最佳答案
在inspect tree dist
之后,我设法找到了生成 Assets 文件的任务playPackageAssets
:
[play-publish-webjar] $ inspect playPackageAssets
[info] Task: java.io.File
[info] Description:
[info]
[info] Provided by:
[info] {file:/Users/jacek/sandbox/play-publish-webjar/}root/*:playPackageAssets
[info] Defined at:
[info] (sbt.Defaults) Defaults.scala:641
[info] Dependencies:
[info] *:playPackageAssets::packageConfiguration
[info] *:playPackageAssets::streams
[info] Reverse dependencies:
[info] *:scriptClasspath
[info] universal:mappings
[info] Delegates:
[info] *:playPackageAssets
[info] {.}/*:playPackageAssets
[info] */*:playPackageAssets
一个简单的解决方案可能是将 playPackageAssets
生成的 Assets webjar 附加到 publishLocal
任务的工件。将以下内容添加到 build.sbt
(类型用于显示您使用的内容):
import play.PlayImport.PlayKeys._
packagedArtifacts in publishLocal := {
val artifacts: Map[sbt.Artifact, java.io.File] = (packagedArtifacts in publishLocal).value
val assets: java.io.File = (playPackageAssets in Compile).value
artifacts + (Artifact(moduleName.value, "asset", "jar", "assets") -> assets)
}
对您想要展示类似行为的其他任务重复此操作。
但是我很怀疑这是最好的解决方案。
关于sbt - 如何在Play 2.3中使用publish/publishLocal发布webjar资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26089472/