Spring Loaded: 与 Spring MVC Maven 项目集成

7

我今天在Spring网站上偶然发现了Spring Loaded项目。我正在尝试将其集成到我一直在开发的Spring MVC(使用Maven和TOMCAT)中。

根据项目页面上的说明,我已经下载了JAR文件,并在TOMCAT VM参数中添加了以下内容(在Eclipse中):

-javaagent:C:\Users\xxx\Downloads\springloaded-1.2.0.RELEASE.jar -noverify

我还禁用了TOMCAT中的“自动发布”功能。现在,一旦我启动TOMCAT并对控制器(或任何其他类)进行任何更改,我就看不到任何热部署发生。我是否做错了什么或者是否需要进行其他配置?感谢您的任何建议。

@Ischin,没有错误信息。TOMCAT启动干净。 - va1b4av
尝试将反斜杠(\)更改为正斜杠(/)。 - lschin
Vaibhav,你能让这个工作起来吗? - IcedDante
很遗憾,我没有。我花了很多时间在这上面。最后我得到了JRebel Social。 - va1b4av
似乎Spring-Loaded没有提供任何关于如何定义新编译类的位置以便重新加载的文档。 - AlikElzin-kilaka
相关链接:https://dev59.com/E2Up5IYBdhLWcg3wrZBp - AlikElzin-kilaka
5个回答

5

我这周尝试在Aptache Tomcat 7上使用Petclinic来快速演示SpringLoaded,与此同时也遇到了和这里讨论的相同问题。最后我发现需要将该项目添加到Tomcat的类路径中。 所以在我的情况下,我打开Eclipse中的Tomcat“启动配置”,在类路径选项卡中,将我的项目添加到“用户条目”组中。这样就可以使springloaded正常工作。


4
您需要在Tomcat中启用“自动发布”,因为更改的.class文件不会复制到Tomcat部署应用程序的临时文件夹中。
例如,在我的本地实例中,临时Tomcat部署文件夹是[WORKSPACE_FOLDER]。\ .metadata \ .plugins \ org.eclipse.wst.server.core \ tmp0 \ wtpwebapps。在此文件夹中,我将我的Eclipse Web应用程序资源(类和其他文件)复制过来,这就是Tomcat用于部署的位置。 当我更改一个类源代码时,我的Eclipse Web应用程序已经编译了它的.class文件放置在[WORKSPACE_FOLDER] \ [MY_WEB_APP_FOLDER] \ target中,该类被重新编译并将其.class文件放置在目标文件夹中。启用“自动发布”后,上面的目标文件夹中的.class文件将被复制到wtpwebapps文件夹中,而禁用该选项则不会进行复制。
“自动发布”也不意味着应用程序在Tomcat上重新部署,它的更新的.class文件和其他文件也会更新到wtpwebapps文件夹中。
但是,您需要在Tomcat中禁用“Web模块”的“自动重新加载”选项。双击在Eclipse中创建的Tomcat服务器,转到“模块”选项卡,单击您的Web应用程序Web模块,然后单击“编辑...”并取消选中“启用自动重载”。保存并重新启动Tomcat。

更详细的发布和自动重载信息以及图片可以在https://dev59.com/jnTYa4cB1Zd3GeqPrSr9#17510281找到(有点自我推销 :))。 - Pavel Horal
感谢@Andrei和Pavel的详细回答。我已经禁用了“自动重新加载”并启用了“自动发布”。我甚至尝试在STS和TOMCAT上使用它。但是似乎都不起作用。 - va1b4av
我已经在STS和Tomcat 7中尝试过这个,使用一个非常简单的Spring Web应用程序,在一个@ Controller注释类中更改代码。 - Andrei Stefan
作为我更改@Controller代码时发生某些事情的标志,我在日志中看到了这个:INFO:org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped"{[/],methods =[GET],params = [],headers = [],consumes = [],produces = [],custom = [] }"到公共java.lang.String com.foo.bar.HomeController.home(java.util.Locale,org.springframework.ui.Model) - Andrei Stefan
@Vaibhav,你有勾选“自动构建”吗(在“项目”菜单中)? - Pavel Horal
@Pavel 是的,我已经勾选了“自动构建”。 - va1b4av

1

我有一个Spring MVC项目。我使用Eclipse编写代码,但不使用它来运行或测试应用程序。在我的设置中,热部署完美地工作。我将提供设置这个的步骤。

步骤 #1

这里下载Spring Loaded Jar。

步骤 #2

编辑你的Maven批处理/Shell文件并添加这一行

export MAVEN_OPTS="-javaagent:/path/to/your/jar/springloaded-1.2.1.RELEASE.jar -noverify"

步骤 #3

在Eclipse中打开“自动构建”[菜单:项目 -> 自动构建]

步骤 #4

配置您的POM文件以使用Tomcat插件

<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.0</version>
    <executions>
      <execution>
      <id>run-embedded</id>
      <goals>
        <goal>run</goal>
      </goals>
   <phase>pre-integration-test</phase>
   <configuration>
    <useSeparateTomcatClassLoader>true</useSeparateTomcatClassLoader>
    <contextFile>${basedir}/tomcat/context.xml</contextFile>
   </configuration>
  </execution>
 </executions>
</plugin>

步骤 #5

使用mvn tomcat:run运行您的应用程序


0

如果你想集成Spring-Loader,你需要添加

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>springloaded</artifactId>
            <version>1.2.3.RELEASE</version>
        </dependency>
    </dependencies>
</plugin>

加入到pom.xml文件中

就这样了。 干杯!!!


这还能用吗?因为我根本无法让它工作。请参见-> http://stackoverflow.com/questions/35014328/spring-loaded-1-2-5-spring-boot-1-3-2-cant-seem-to-get-it-to-work - Ronner

0

我有一个Spring MVC项目,使用Tomcat7-maven。我使用Eclipse编写代码。

我将我的项目配置如下:

步骤1:pom.xml

<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.2</version>
    <!-- Config: contextPath and Port (Default: / : 8080) -->
    <configuration>
        <path>/</path>
        <port>8080</port>
    </configuration>
</plugin>

步骤 #2

这里下载Spring Loaded Jar:springloaded-1.2.5.RELEASE.jar

步骤 #3

右键单击您的项目→ 运行为 → 运行配置… → Maven构建 → 新建 →

主选项卡:

  • 名称:您的配置名称
  • 基本目录:${workspace_loc:/YourProjectName}
  • 目标:tomcat7:run -X

参数选项卡: 在VM参数中:-javaagent:path/to/library/springloaded-1.2.5.RELEASE.jar -noverify

→ 运行

现在,您可以修改源代码并立即查看更改。只需在Web浏览器中重新加载页面,而无需重建项目(Eclipse会自动构建)并重新启动Web服务器。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接