gpt4 book ai didi

hibernate - 我怎样才能加快 Maven 和 Netbeans

转载 作者:行者123 更新时间:2023-11-28 21:46:33 25 4
gpt4 key购买 nike

我有一个相当大的项目(有相当大的堆栈,包括 Spring 和 Hibernate),我使用 Maven 通过 Netbeans 构建。

不幸的是,每次我对类进行更改时,我都需要重新构建。这意味着

  • 全部保存并编译
  • 运行所有测试
  • 建立大规模 war
  • 从 Tomcat 取消部署
  • 从 Tomcat 重新部署
  • 启动应用程序(Spring = Zzzzzzz/Hibernate = Zzzzzzz)

这最多可能需要 5 分钟的时间来检查微小的变化是否会产生影响。可能是我方法不对?

请指教...

最佳答案

好的,我也在研究非常相似的设置,所以这是我的 2 美分。

首先,让您尝试使用 Maven-Jetty 插件。让它扫描文件中的更改,这样您就不必为每个更改重建/部署整个项目。还可以将其配置为存储 session ,以便在每次(自动)部署时您都不必重新登录并回到进行更改之前的状态:

    <plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.24</version>
<configuration>
<stopPort>9669</stopPort>
<stopKey>myapp</stopKey>
<!-- Redeploy every x seconds if changes are detected, 0 for no automatic redeployment -->
<scanIntervalSeconds>3</scanIntervalSeconds>
<connectors>
<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
<port>8080</port>
<maxIdleTime>60000</maxIdleTime>
</connector>
</connectors>
<webAppConfig>
<contextPath>/myapp</contextPath>
<sessionHandler implementation="org.mortbay.jetty.servlet.SessionHandler">
<sessionManager implementation="org.mortbay.jetty.servlet.HashSessionManager">
<storeDirectory>${project.build.directory}/sessions</storeDirectory>
</sessionManager>
</sessionHandler>
</webAppConfig>
</configuration>
</plugin>

现在,转到项目 Properties(通过右键单击项目)> Build > Compile > Compile on save 并选择 For both application and text execution

同时转到 Options > Miscellaneous > Maven > 并检查/选择 Skip Tests for any build executions not directly related to testing,这样测试只会在您实际运行“测试”时运行。

按照这些简单的步骤,我可以实时、快速地编写代码和测试更改,而无需重新部署。也就是说,我遇到了一些小问题/烦恼:

  1. 有时当某些东西不起作用时(例如,您删除了一些东西但更改没有反射(reflect)出来),您仍然需要清理构建

  2. 长时间保持运行会导致 PermGen 异常(空间不足),这是合理的,您可以随时使用 jvm opts 增加内存

  3. 一旦习惯了这种设置,您将讨厌在 jboss/websphere 等容器上开发/测试项目

关于hibernate - 我怎样才能加快 Maven 和 Netbeans,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7471233/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com