我被分配到基于Spring / Hibernate构建的Java Web应用程序上,使用Wicket作为前端,maven用于依赖项管理,在Tomcat服务器上运行。
使用netbeans,每当我对代码进行更改时,我点击运行,IDE继续重建项目,将代码编译为类文件,然后将其打包成.war
文件,我理解只是一个常规档案,没什么特别的。
但是构建所有东西需要花费10分钟,即使它只是对一个wicket东西或者hibernate东西或其他东西的一点点改变,而且它非常没有效果。
看看部署过程,最大的瓶颈是
如何加快开发过程?虽然与其他一些应用程序相比,每个构建10分钟可能相对较少,但浪费时间仍然浪费在我身上。
答案 0 :(得分:3)
这是一个更好的建议:使用Spring Boot。您可以在没有servlet引擎或Java EE应用服务器的JVM上将应用程序作为可执行JAR运行。
答案 1 :(得分:3)
我理解你的沮丧。我经历过那个。我的循环时间是20分钟,完全重新部署,我的意思是停止Tomcat,重新运行战争和罐子,然后重新启动服务器。
随着时间的推移,我们重构了我们的代码库,使每个功能(或网络资源)成为一场战争,我们从一场完成所有事情的战争转变为大约100次战争,每次战争都只有一个问题。如果战争之间存在一些共享模块,我们将模块打包为jar并将其部署为共享库。由于每个人一次只使用一个Web资源,一次只有一个战争,所以重新部署单个战争就足够了,就像几秒钟(自动使用tomcat-maven-plugin)。但是,如果涉及共享模块,则必须完全重新启动Tomcat。
如果可能的话,我建议你将应用程序分解为许多可部署的。首先,你可以将你的前端和后端分成两个战争,并在可能的情况下进一步划分。
答案 2 :(得分:-1)
这里至少有两种可能性:
1)使用JRebel:https://zeroturnaround.com/software/jrebel/
2)进入Tomcat的app文件夹:在那里你可以找到包含war文件解压缩内容的文件夹,只需复制粘贴(在适当的位置)JSP原样,如果你进行了更改一个jsp,或者复制你已经更改的类的.class文件...在大多数情况下,不需要重启Tomcat。
答案 3 :(得分:-1)
我使用Eclipse进行开发。但我相信两种IDE的选择都是相似的。
当您使用maven时,运行的默认maven目标将是“mvn package”,它清理目标目录,创建类文件,运行单元测试并准备war文件并在tomcat中部署。
现在,您应该使用New - >添加运行时服务器,例如tomcat。服务器。并使用Run as - >在项目的服务器上运行并提供tomcat服务器作为运行时。下次更改代码时,只要tomcat正在运行,就会热部署更新的类。因此,您只能在开发期间测试代码。 如果只想创建war,请使用mvn package创建war文件。