java - 在源代码控制的、mavenized 的 java web 应用程序中使用 Bower 是否有最佳实践

标签 java maven web-applications bower

我对 Bower 很陌生,但对 Web 应用程序开发不是很熟悉。以前,我只是从第三方库/框架下载了所需的 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 中)。

是否有将 Bower 与 Web 应用程序一起使用的最佳实践,以使该应用程序不会因不必要的第三方库文件而变得臃肿?请记住,这也是 Java 和 Maven 网络应用程序。

最佳答案

看到你在这个问题上标记了 maven,在尝到了 maven 依赖管理的好处之后,我完全不同意检查 3rd 方库:) 不管它是 jar 还是 js。

这是我们在工作中一直试图调和的东西,因为在 Maven 中似乎没有一种自然的方式来处理 js 依赖关系。专门针对 Bower,这里看起来有一个很好的 Maven 插件:

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

您可以为其指定目标目录。我还没有使用过它,但我想让它把 js 文件带到我的目标目录中,这样我就不必把它放在我的源代码中了。如果我们继续推进,这就是我的设想。


如果您感兴趣,我还有更多要补充的(因为关于这个主题的内容不多)...我们目前正在使用 maven“js” Artifact ,因此我们可以利用 maven 的依赖管理与我们的第 3 方 js。我们 fork 来为我们执行此操作的插件位于:

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

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

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

关于java - 在源代码控制的、mavenized 的 java web 应用程序中使用 Bower 是否有最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23938146/

相关文章:

java - android fragment 可以重复使用吗?

java - 如何使用 Apache HttpComponents 从 Java Socket 获取 HTTPRequest

java - pom.xml Maven 配置以在混合 Java + Kotlin 项目中运行 JUnit 4 + JUnit 5 Jupiter 测试

web-applications - Firebase错误: Blocked all requests from this device due to unusual activity

java - CXF JAXRS - 如何将日期作为 QueryParam 传递

Java 依赖项

java - Spring Boot - 依赖项的初始化顺序

c# - 如何在多语言 Web 应用程序中转换和存储可配置项?

servlets - WEB-INF 在 Java EE Web 应用程序中代表什么?

Java 检查文件夹名称中是否有 14 位数字