Java ninjaframework web应用程序如何拆分?

Java ninjaframework web应用程序如何拆分?,java,eclipse,maven,tomcat7,ninjaframework,Java,Eclipse,Maven,Tomcat7,Ninjaframework,我刚刚开始开发一个基于Ninja框架的java web应用程序。一切都很好,但是:由于所有的忍者依赖,部署战大约有25MB。我真的希望,我不必一直上传一个25MB的java归档文件——特别是因为这样的事实,依赖项不会像我的应用程序的样式表那样频繁地改变 是否有一个实用的解决方案将ninjaframework依赖项移动到一个单独的jar中?我正在使用eclipse,因此集成在IDE中的解决方案将非常好 到目前为止,我已经研究了maven依赖项的作用域,并且(没有成功)尝试将依赖项移动到一个单独的项

我刚刚开始开发一个基于Ninja框架的java web应用程序。一切都很好,但是:由于所有的忍者依赖,部署战大约有25MB。我真的希望,我不必一直上传一个25MB的java归档文件——特别是因为这样的事实,依赖项不会像我的应用程序的样式表那样频繁地改变

是否有一个实用的解决方案将ninjaframework依赖项移动到一个单独的jar中?我正在使用eclipse,因此集成在IDE中的解决方案将非常好

到目前为止,我已经研究了maven依赖项的作用域,并且(没有成功)尝试将依赖项移动到一个单独的项目中,并使用系统范围的依赖项引用该项目(据我所知,我可以将其部署为一个单独的jar文件)。我目前无法用maven构建这个依赖项jar——但我也在想,是否有更好的方法


我以plesk安装方式将应用程序部署在tomcat服务器上

如果必须使用所有依赖项,则无法避免在应用程序中部署它们

您不知道是否要部署到容器中(可能是Tomcat)。如果这样做,您可以尝试将所需的库部署到容器中,并将Maven作用域设置为提供,以避免重新部署库


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

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

背景:默认情况下,忍者4可能会捆绑太多的库。这很酷,因为一切都可以开箱即用,而不必考虑所需的库。不利的一面是,对于您想要做的事情来说,jar/war可能太大了。关于如何让忍者更具模块化的讨论正在进行中——请随意加入我们的邮件列表:)


但是如上所述,您可以使用Maven's exclude将Ninja的捆绑包割断。

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