Spring-Loaded:与Spring MVC maven项目集成
今天我在Spring网站上偶然发现了Spring加载的项目。我正试图将其集成到我一直在开发的SpringMVC中(使用Maven和TOMCAT) 按照项目页面上的说明,我下载了JAR文件,并在TOMCAT VM参数(Eclipse内部)中添加了以下内容: 我还禁用了TOMCAT中的“自动发布” 现在,一旦我启动TOMCAT并对控制器(或任何其他类)进行任何更改,我就不会看到任何热部署发生。是否有任何问题,或者是否需要其他配置 非常感谢您的任何输入。您确实需要在Tomcat中“自动发布”,因为更改的.class文件不会复制到Tomcat部署应用程序的临时文件夹中 例如,在我的本地实例中,临时Tomcat部署文件夹是Spring-Loaded:与Spring MVC maven项目集成,spring,maven,tomcat,spring-mvc,spring-loaded,Spring,Maven,Tomcat,Spring Mvc,Spring Loaded,今天我在Spring网站上偶然发现了Spring加载的项目。我正试图将其集成到我一直在开发的SpringMVC中(使用Maven和TOMCAT) 按照项目页面上的说明,我下载了JAR文件,并在TOMCAT VM参数(Eclipse内部)中添加了以下内容: 我还禁用了TOMCAT中的“自动发布” 现在,一旦我启动TOMCAT并对控制器(或任何其他类)进行任何更改,我就不会看到任何热部署发生。是否有任何问题,或者是否需要其他配置 非常感谢您的任何输入。您确实需要在Tomcat中“自动发布”,因为更改
[WORKSPACE\u folder]\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
。在这个文件夹中,我复制了EclipseWeb应用程序资源(类和其他文件),Tomcat将在这里收集这些资源进行部署。
当我更改一个类源代码时,会重新编译该类,并将其.class文件放置在[WORKSPACE\u FOLDER]\[my\u web\u app\u FOLDER]\target
文件夹中。启用“自动发布”后,上述target
文件夹中的.class文件将复制到wtpwebapps
文件夹中,而禁用该选项后,将无法复制
“自动发布”并不意味着应用程序在Tomcat上重新部署,其更新的.class文件和其他文件也在wtpwebapps
文件夹中更新
但是,您需要在Tomcat中禁用的是web模块的“自动重新加载”选项。双击在Eclipse中创建的Tomcat服务器,转到“模块”选项卡,单击web应用程序web模块,然后单击“编辑…”并取消选中“自动重新加载启用”。保存并重新启动您的Tomcat。本周,我正在尝试SpringLoaded在Apache Tomcat 7上使用Petclinic进行快速演示,面临与此处讨论相同的问题。最后,我发现我需要将项目添加到Tomcat类路径中。
因此,在我的例子中,我在Eclipse中打开了Tomcat的“启动配置”,并在classpath选项卡中,将我的项目添加到“用户条目”组中。这导致springloaded工作正常 我有一个spring mvc项目。我使用eclipse编写代码,但不使用它来运行或测试应用程序。热部署与我的设置完美配合。我将给出设置此项的步骤 步骤#1 从下载弹簧加载的Jar 第2步 编辑maven批处理/shell文件并添加此行
export MAVEN_OPTS="-javaagent:/path/to/your/jar/springloaded-1.2.1.RELEASE.jar -noverify"
第三步
在eclipse中启用自动生成[菜单:项目->自动生成]
第四步
将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>
org.apache.tomcat.maven
tomcat7 maven插件
2
嵌入式运行
跑
预集成测试
真的
${basedir}/tomcat/context.xml
第五步
使用mvn tomcat运行你的应用程序:如果你想集成你需要添加的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>
org.springframework.boot
springbootmaven插件
org.springframework
弹簧负载
1.2.3.1发布
转换为pom.xml
就这样。
干杯 我有一个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>
org.apache.tomcat.maven
:springloaded-1.2.5.RELEASE.jar
步骤3
右键单击您的项目→ 作为→ 运行配置…→ Maven Build→ 新的→
主选项卡:
- 名称:您的配置的名称
- 基本目录:${workspace\u loc:/YourProjectName}
- 目标:tomcat7:run-X
选项卡参数:
在VM参数处:-javaagent:path/to/library/springload-1.2.5.RELEASE.jar-noverify
→ 跑步
现在您可以修改源代码并立即看到更改。只需在web浏览器中重新加载页面,而无需重建项目(Eclipse自动构建),并且必须重新启动web服务器。@Ischin没有错误消息。TOMCAT启动时是干净的。请尝试将反斜杠(\)改为正斜杠(/)Vaibhav,您能使其正常工作吗?@IcedDante不幸不能。我在这上面花了很多时间。最后我得到了JRebel Social。spring-loaded似乎没有提供任何关于如何定义新编译类位置的文档,因此可以重新加载它们。关于发布和自动重新加载的更多详细信息,请访问(有点自我提升:)。感谢@Andrei和Pavel的详细回复。我已禁用“自动重新加载”并启用“自动发布”。我甚至试过在STS和TOMCAT上使用它。这里似乎什么都不管用。我在STS和Tomcat 7中使用了一个非常简单的Spring web应用程序,在@Controller注释类中更改了代码。当我更改@Controller代码时,作为某种情况发生的迹象,我在日志中看到了这一点:INFO:org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping-将“{[/],methods=[GET],params=[],headers=[],consumes=[],products=[],custom=[])映射到公共java.lang.String.com.foo.bar.HomeController.home(java.util.Locale,org.springframework.ui.Model)上
@Vaibhav您是否已自动选中Build(菜单项目)?此功能是否仍然有效?因为我根本不能让它工作。见->
<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>