在源控制的,mavenized,java Web应用程序中使用bower是否有最佳实践

时间:2014-05-29 16:26:09

标签: java maven web-applications bower

我对凉亭很新,但不是网络应用程序开发。以前,我刚刚从第三方库/框架下载了所需的JavaScript和CSS文件,并将它们放入我的Web应用程序的src / main / webapp / scripts(或等效文件)文件夹中。这可确保仅部署Web应用程序所需的文件。

使用我的默认设置,整个bower_components目录将提交给源控件,如果我按照示例引用bower包,例如,

<script src="/bower_components/jquery/jquery.js"></script>

我最终将使用我的Web应用程序部署整个bower_components目录。这似乎是一个巨大的矫枉过正(尤其是我使用jQuery UI,因为所有的主题都被下载到了凉亭中)。

在使用bower和Web应用程序时是否有最佳做法,以便应用程序不会因不必要的第三方库文件而膨胀?请记住,这也是Java和Maven Web应用程序。

3 个答案:

答案 0 :(得分:1)

看到你在这个问题上标记了maven,我完全不同意在尝试了maven依赖管理的优点之后检查第三方库,无论它是jar还是js。

这是我们一直试图在我的工作中调和的东西,因为似乎没有一种自然的方式在maven中执行js依赖。特别是对于凉亭来说,这里看起来是一个很好的maven插件:

  

https://bitbucket.org/cofarrell/bower-maven-plugin

您可以为其指定目标目录。我还没有使用它,但我希望它将js文件引入我的目标目录,所以我不必把它放在我的源代码中。如果我们继续前进,这就是我想象的。


如果你感兴趣我还有更多要补充的内容(因为关于这个主题的内容并不多)...我们目前正在使用maven“js”工件,因此我们可以利用maven的依赖管理与我们的第三方js。我们为我们分配的插件是:

  

https://github.com/cameroncan/js-import-maven-plugin

它完成了它的工作,但它是为我们的用例而构建的。如果您发现需要进行通用化,请提交问题。我们必须手动将这些工件上传到nexus,但这不是一个大问题。

使用maven依赖机制的一大优势是传递依赖性解析。我们将js分解为不同的模块而没有maven,可能会与我们的js文件版本发生冲突,导致最终应用程序中出现大混乱,导致所有js依赖项。

答案 1 :(得分:0)

我刚读了一些关于这个主题的文章,似乎Bower本身建议将bower_components“签入”到源代码控制中:

  

“......您应该始终将已安装的软件包检查到源代码管理中。”

从我读过的文章中,我得到以下结论:

  1. 如果您的项目被其他人使用(例如:作为凉亭包),则不要在源代码管理中包含bower_components

  2. 如果要部署项目,请在源代码管理中包含bower_components

答案 2 :(得分:0)

您可以使用bower-installer作为节点包来控制从下载的分发包文件夹中将哪些文件复制到静态资源文件夹。请查看以下链接。

https://www.npmjs.com/package/bower-installer

我按照以下步骤选择要复制到我的lib文件夹的文件

1)通过runnnig npm install -g bower-installer命令

安装bower-installer

2)创建&#39; bower_components&#39;你的src文件夹之外的文件夹。

3)编辑bower.json配置文件(在&#39; bower_component&#39; s文件夹中)并指定每个js库组件的路径。

4)从终端

运行bower-installer