热代码使用Maven部署tomcat
我有一个使用maven构建的web应用程序。它是以不同项目的形式构建的,这些项目相互依赖——域、dao、服务等。我在每个项目中运行了eclipse:eclipse来配置我的eclipse环境。现在我在eclipse中有多个项目。这是我的发展环境 我还为操作人员构建了一个tomcat包,这样我就可以为他们提供一个zip文件,他们可以提取并运行一个批处理文件来启动服务器。此zip文件包含一个war文件,该文件在tomcat的热代码使用Maven部署tomcat,tomcat,maven,Tomcat,Maven,我有一个使用maven构建的web应用程序。它是以不同项目的形式构建的,这些项目相互依赖——域、dao、服务等。我在每个项目中运行了eclipse:eclipse来配置我的eclipse环境。现在我在eclipse中有多个项目。这是我的发展环境 我还为操作人员构建了一个tomcat包,这样我就可以为他们提供一个zip文件,他们可以提取并运行一个批处理文件来启动服务器。此zip文件包含一个war文件,该文件在tomcat的配置中引用 另外,出于开发目的,我将tomcat设置为从eclipse中启动
配置中引用
另外,出于开发目的,我将tomcat设置为从eclipse中启动。我的目标是在源代码更改时进行热代码部署。由于类文件位于“target”文件夹中(由于maven的目录结构),因此当前不会发生这种情况。tomcat查看war文件(我的意思是分解结构…)
如何配置tomcat/eclipse环境,以便开始执行热代码部署
-谢谢 Tomcat本身不支持热重新部署,除非您的应用程序框架支持类重新加载。(Tapestry有,但我不建议出于其他原因使用Tapestry)。我相当肯定eclipse:eclipse也不支持热重部署,所以有两件事对您不利 我知道你有两个选择。。。首先,切换到使用M2Eclipse而不是eclipse:eclipse。您必须摆脱旧的eclipse:eclipse配置才能使其正常工作。使用m2eclipse将类从eclipse编译器导出到Tomcat。这避免了中间的“mvn清洁包”步骤。一旦运行了m2eclipse,就可以下载JRebel了。即使框架本身不支持类重新加载,JRebel也将支持热重部署 祝你好运 我使用及其目标
tomcat7:run
从eclipse中启动tomcat(顺便说一句,使用eclipse的m2e插件-很棒的工具-可从eclipse市场获得)。热代码替换对我也不起作用。但是我使用了一种变通方法:使用true
tomcat,只要它检测到文件更改,就会重新加载应用程序
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<path>/myapp</path>
<contextReloadable>true</contextReloadable>
</configuration>
</plugin>
</plugins>
</build>
org.apache.tomcat.maven
tomcat7 maven插件
2.2
/myapp
真的
您可以使用“autoDeploy”管理的重新加载机制,您可以阅读该机制。我修改了我的maven-war插件
,将war输出到webapp文件夹:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<outputDirectory>${my.tomcat.path}</outputDirectory>
</configuration>
</plugin>
org.apache.maven.plugins
maven战争插件
2.3
${my.tomcat.path}
与
[我的TOMCAT Web应用程序路径]
在此之后,我只需要做
mvn编译war:war
或mvn编译包
,如果我的答案有帮助,别忘了接受。如果我的答案很糟糕,不要麻烦了:D
<properties>
<my.tomcat.path>[MY TOMCAT WEBAPP PATH]</my.tomcat.path>
</properties>