忍者框架-Web-应用程序如何拆分?

Posted

技术标签:

【中文标题】忍者框架-Web-应用程序如何拆分?【英文标题】:How can a ninjaframework-web-application be split up? 【发布时间】:2015-02-19 09:25:02 【问题描述】:

我刚刚开始开发基于 ninjaframework 的 java web 应用程序。一切都很好,但是:有了所有 ninja-dependencies,deploy-war 大约有 25MB。我真的希望,我不必一直上传 25MB 的 java 存档——尤其是因为依赖关系不会像例如我的应用的样式表。

是否有实用的解决方案将 ninjaframework-dependencies 移动到单独的 jar 中?我正在使用 eclipse,因此集成在 IDE 中的解决方案会很棒。

到目前为止,我已经查看了 maven 依赖范围并(未成功)尝试将依赖项移动到一个单独的项目中,并使用系统范围的依赖项引用该项目(我的理解是能够部署为单独的 jar 文件)。我目前无法使用 maven 构建这个依赖项 - 但我也想知道是否有更好的方法。

我在 plesk 安装中的 tomcat 服务器上部署应用程序

【问题讨论】:

【参考方案1】:

另一种选择是排除您不使用的库。例如,如果您不使用 JPA,您可以通过 Maven 的 xml 标签安全地将其从构建中排除。

背景:Ninja 4 默认可能捆绑了太多的库。这很酷,因为一切都可以开箱即用,无需考虑所需的库。缺点是罐子/战争对于你想做的事情来说可能太大了。有关于如何使 Ninja 更加模块化的讨论 - 请随时在我们的邮件列表中加入 :)

但如上所述 - 您可以使用 Maven 的 exclude 自行削减 Ninja 的捆绑包。

【讨论】:

【参考方案2】:

如果您必须使用所有依赖项,则无法避免将它们与您的应用程序一起部署。

您不知道您是否正在部署到容器(可能是 Tomcat)中。如果这样做,您可以尝试将所需的库部署到容器中并将 Maven 范围设置为 provided 以避免重新部署库。

拥有容器提供的库有好处,但也可能是一种负担。很大程度上取决于您的部署和操作流程。

【讨论】:

正如问题中添加的那样:我使用 tomcat 进行部署,并希望完全按照您的建议进行:部署与应用程序本身分开的库以避免重新部署。因为我也不想手动部署和指定每个依赖项,所以我正在寻找一种方法来告诉 maven 将一个(除了完全空的依赖项之外)项目的所有依赖项打包到一个组合的依赖项 jar 中。但是 maven 一直告诉我项目是空的,因此不会有任何导出(除了复制的 pom.xml) 这是一个很好的问题+答案:***.com/questions/267953/managing-libraries-in-tomcat 对于库的部署,我只需使用您的部署过程将所需的库移动到 Tomcat lib 目录中,然后将 POM 中的所有库设置为范围 provided 并且根本不发送它们。这样您就可以很好地分离这两个步骤,并且可以将它们组织为不同的部署步骤。

以上是关于忍者框架-Web-应用程序如何拆分?的主要内容,如果未能解决你的问题,请参考以下文章

如何判断 Web 应用程序是不是使用代码拆分

JavaScipt 忍者秘籍之运行时的页面构建过程

spring框架学习:Spring整合Web项目整合Mybatis

淘宝HSF 框架使用 总结

淘宝(taobao)HSF框架

如何使用ninja编译系统编译我们的程序?