Playframework 发布play framework插件的资产文件
在Playframework 发布play framework插件的资产文件,playframework,sbt,playframework-2.3,Playframework,Sbt,Playframework 2.3,在build.sbt文件中使用publishTo,它可以被删除。 但资产文件(在公用文件夹中)未打包。如何打包和发布资产文件?问题标题提到了“插件”,但从问题的其余部分来看,我不确定您的意图是将Play web应用程序部署到生产环境,将Play web应用程序推送到Maven存储库(如链接中所示),还是将Play插件推送到Maven repo 假设是第一种情况,我自己将Play web应用部署到生产环境的过程会使用bash脚本执行此操作: 运行playdist (包括公共资产) 可选:重新打包存
build.sbt
文件中使用publishTo
,它可以被删除。
但资产文件(在<代码>公用代码>文件夹中)未打包。如何打包和发布资产文件?问题标题提到了“插件”,但从问题的其余部分来看,我不确定您的意图是将Play web应用程序部署到生产环境,将Play web应用程序推送到Maven存储库(如链接中所示),还是将Play插件推送到Maven repo 假设是第一种情况,我自己将Play web应用部署到生产环境的过程会使用bash脚本执行此操作:
playdist
(包括公共资产)scp
这可能也很有用。对于本地发布的资产文件,请在
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, "jar", "jar", "assets") -> assets)
}
最后一个功能行中的重要注意事项:
首先jar
指定包类型文件夹(WebJAR作为java依赖项添加到jars文件夹中)
第二个jar
指定打包文件的扩展名
资产
是分类器()
现在,您可以使用buil.sbt
文件中的以下命令在另一个项目中将打包的资产用作webjar:
libraryDependencies ++= "organization" % "pluginName_scalaVersion" % "version" classifier "assets"
如果您想在jar中添加一些目录(例如“public”),只需在build.sbt中添加这几行即可
import NativePackagerHelper._
...
mappings in (Compile, packageBin) ++= directory("public")
来自和。链接问题的可能重复项不包括我的问题。我需要在另一个项目中使用类似webjar的资产文件,但我无法导入资产jar文件来构建.sbt文件,因为它们位于发布的locationplay命令中的
assets
文件夹中,play framework 2.3不再提供该命令。我需要通过一个非常有效的webjar自动发布。如果试图发布到像artifactory这样的工件/常春藤服务器,用“发布”替换“publishLocal”也可以