Java 像eclipse一样运行Tomcat应用程序,但不运行eclipse

Java 像eclipse一样运行Tomcat应用程序,但不运行eclipse,java,maven,tomcat,build,automation,Java,Maven,Tomcat,Build,Automation,我的团队基本上虔诚地使用Eclipse,但是承包商和自由职业者倾向于对IDE和工作流有不同的偏好。问题是在没有eclipse(或任何其他IDE)的情况下以用户友好的方式运行Spring/Maven/Tomcat应用程序。我认为必须有一个快速的控制台命令,比如“mvn run”或一个简单的.sh和.bat文件 使用Eclipse,您可以: 右键单击项目->运行方式->在服务器上运行 最妙的是,eclipse将扫描您的项目,并在您键入时刷新资源,而无需重新启动Tomcat。此外,Eclipse将

我的团队基本上虔诚地使用Eclipse,但是承包商和自由职业者倾向于对IDE和工作流有不同的偏好。问题是在没有eclipse(或任何其他IDE)的情况下以用户友好的方式运行Spring/Maven/Tomcat应用程序。我认为必须有一个快速的控制台命令,比如“mvn run”或一个简单的.sh和.bat文件

使用Eclipse,您可以:

  • 右键单击项目->运行方式->在服务器上运行
最妙的是,eclipse将扫描您的项目,并在您键入时刷新资源,而无需重新启动Tomcat。此外,Eclipse将从工作区运行项目,而无需将任何内容移动到Tomcat或进行WAR。该选项显示“使用工作区元数据(不修改Tomcat安装)”

但是,如果没有eclipse,我只知道告诉他们运行“mvn安装”,然后将war文件复制/粘贴到Tomcats的“webapps”目录。这个过程非常乏味,我通常会说服他们使用eclipse,他们会皱眉

所以我们的构建堆栈是这样的:Maven、ANT、NPM、Grunt。这四种方法中的任何一种都能在外部Tomcat上轻松运行项目吗?我真的很想听听其他人在同样情况下的故事和一些指导

我在网上找到的只有以下内容:。我不太清楚这是否是我想要的

注意,我们使用的是独立的Tomcat v9,因为maven Tomcat只是v7

谢谢大家

注意,我们使用的是独立的Tomcat v9,因为maven Tomcat是 只有v7

我不懂那句话

您可以使用maven cargo或maven tomcat插件部署到tomcat

对于tomcat插件,请看以下内容: 我不知道它是否适用于Tomcat9,但对于Tomcat8,它工作得非常完美。 你试过那个插件吗

对于货物,请看以下内容:

在这两种情况下,我们的想法都是在pom.xml中配置插件,在其中打包war,以便在生命周期的适当阶段触发部署(默认情况下阶段是绑定的,但您可以更改它)

例如,这里有一个Tomcat Maven插件的示例,我告诉Tomcat插件在预集成测试阶段部署底层pom.xml生成的工件:

<project>
   <packaging>war</packaging>
  ...
  <build>
    ...
    <plugins>
      ...
      <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.3-SNAPSHOT</version>
        <configuration>
          <url>http://localhost:8080/mymanager</url>
        </configuration>
        <executions>
            <execution>
            <id>tomcat-deploy</id>
            <phase>pre-integration-test</phase>
            <goals>
                <goal>deploy</goal>
            </goals>
           </execution>
        </executions>
      </plugin>
      ...
    </plugins>
    ...
  </build>
  ...
</project>

战争
...
...
...
org.apache.tomcat.maven
tomcat7 maven插件
2.3-2
http://localhost:8080/mymanager
tomcat部署
预集成测试
部署
...
...
...

有关详细信息,请随意阅读官方文档。

您不需要修改构建脚本

只需在Tomcat中创建一个context.xml文件,直接指向您的.war文件,并设置为“可重新加载”

示例:在
$TOMCAT_BASE/conf/Catalina/localhost
中,使用所需的上下文名称创建一个文件,例如
MyApp.xml
。这将使
localhost:8080/MyApp
成为您的应用程序(或它正在侦听的任何端口)的URL

文件内容应为:


当然,如果您不在Windows上,则不使用
C:
前缀


现在,无论何时更新.war文件,例如使用
mvn安装
,Tomcat都会自动重新加载应用程序(稍微延迟,我相信最长可达20秒)。

这就是我要说的。这给了我一个想法。我可以使用ANT设置“MYAPP_HOME”,并确保开发人员已经设置了“CATALINA_HOME”。然后,我可以将您的代码片段文件复制到tomcat中需要的位置<代码>真的很有帮助,谢谢你,但现在太多了。稍后我肯定会尝试一下CodeHaus的货物。它似乎是嵌入Tomcat和独立版之间的一个很好的媒介。通过这种方式,我的项目可以为您安装Tomcat,Cargo添加了各种有趣的魔法。这一部分:注意,我们使用的是独立的Tomcat v9,因为maven Tomcat只是v7。我只是指你提到的tomcat7 maven插件是v7而不是TomcatV9。我只是想尽量跟上时代。