Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
热代码使用Maven部署tomcat_Tomcat_Maven - Fatal编程技术网

热代码使用Maven部署tomcat

热代码使用Maven部署tomcat,tomcat,maven,Tomcat,Maven,我有一个使用maven构建的web应用程序。它是以不同项目的形式构建的,这些项目相互依赖——域、dao、服务等。我在每个项目中运行了eclipse:eclipse来配置我的eclipse环境。现在我在eclipse中有多个项目。这是我的发展环境 我还为操作人员构建了一个tomcat包,这样我就可以为他们提供一个zip文件,他们可以提取并运行一个批处理文件来启动服务器。此zip文件包含一个war文件,该文件在tomcat的配置中引用 另外,出于开发目的,我将tomcat设置为从eclipse中启动

我有一个使用maven构建的web应用程序。它是以不同项目的形式构建的,这些项目相互依赖——域、dao、服务等。我在每个项目中运行了eclipse:eclipse来配置我的eclipse环境。现在我在eclipse中有多个项目。这是我的发展环境

我还为操作人员构建了一个tomcat包,这样我就可以为他们提供一个zip文件,他们可以提取并运行一个批处理文件来启动服务器。此zip文件包含一个war文件,该文件在tomcat的
配置中引用

另外,出于开发目的,我将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>