如何使用二进制模式的新资产管道插件打包插件资产?

时间:2014-05-26 13:47:59

标签: grails asset-pipeline grails-plugin

我们的项目取决于我们称之为“dataLayer”的grails插件,因为它将数据保存在不同的应用程序中。例如,共享域类,共享主题,css,javascripts。

这适用于资源插件。 现在我迁移到资产管道插件,它在使用inplace-plugins的开发环境中本地工作也很好。

在生产中在线使用相同的应用程序不起作用,因为css文件和js文件为空或缺失。

也许很高兴知道:我们的DataLayer插件包含grails-app /中的默认资源文件夹。我们有一个额外的文件夹,称为“主题”,包含我们主题的所有js和css。在javascript和css文件夹中,我们有一些文件声明文件作为主题文件夹中的要求。这在开发环境中工作正常。

例如grails-app / assets / javascripts / core.js中dataLayer插件中的core.js

//= require ../theme/assets/plugins/jquery-1.10.1.min
//= require ../theme/assets/plugins/jquery-migrate-1.2.1.min
// IMPORTANT! Load jquery-ui-1.10.1.custom.min.js before bootstrap.min.js to fix bootstrap tooltip conflict with jquery ui tooltip
//= require ../theme/assets/plugins/jquery-ui/jquery-ui-1.10.1.custom.min
//= require ../theme/assets/plugins/bootstrap/js/bootstrap.min
//= require ../theme/assets/plugins/jquery-slimscroll/jquery.slimscroll.min
//= require ../theme/assets/plugins/jquery.blockui.min
//= require ../theme/assets/plugins/jquery.cookie.min
//= require ../theme/assets/plugins/uniform/jquery.uniform.min
//= require ../theme/assets/scripts/app

另外要知道:我们使用二进制插件打包,因此dataLayer插件以二进制模式(无源)打包并上传到我们的maven存储库。从那里它在生产环境中得到解决。 ===>我认为这是问题所在。我认为assets文件夹没有打包到jar中。

这可能吗?如果是,我怎么能正确地将资产文件夹添加到包装中?

更新:仅在使用没有源的二进制插件时才会出现此问题。使用以下选项时,似乎grails包(maven-deploy --binary)不包含资产:

在插件描述符中:

def packaging = "binary"

在BuildConfig.groovy中:

grails.project.plugin.includeSource = false

bildschirmfoto 2014-05-27 um 11 07 43

来自web-app文件夹的静态图片,javascripts,css总是在目标jar中(无论我使用哪个选项),所以这似乎是资产管道问题。

1 个答案:

答案 0 :(得分:0)

资产管道插件尚不支持二进制插件模式。该插件的开发人员David Estes正在研究它。您可以在此处找到问题:https://github.com/bertramdev/asset-pipeline/issues/98