可能已经问过这个问题(如果是,请链接我),但是当我搜索时,我找到了一堆如何在 tomcat 上运行 maven,如何连接 IDE 来执行此操作(几乎所有这些都是 ide/配置问题),如何在 tomcat 中使用 maven 插件等相关问题。
我知道我可以使用像 intellij 或 eclipse 这样的 IDE 来创建一个带有 maven 和 tomcat 的 Web 应用程序项目,它们会因为设置配置而运行。我正在玩,试图看看如何手动完成(希望能学到一些东西)。
现在我有一个正在运行的雄猫项目。基本上我从 http://tomcat.apache.org/下载了tomcat 8。然后,我提取了示例文件,并让它运行我自己的文件。
我想把它包装在 maven 中。
我创建了一个典型的 maven 项目(示例):
.
|____WebApp
| |____pom.xml
| |____src
| | |____main
| | | |____resources
| | | |____webapp
| | | | |____index.jsp
| | | | |____WEB-INF
| | | | | |____web.xml
我应该把我的 tomcat 文件放在哪里?在网络应用中?
要运行我正在使用的雄猫
bin/catalina.sh run
从我的雄猫文件中。我可以从我的pom运行它,还是需要创建一个java文件来以某种方式调用它?
如果我在Intellij中执行此操作(通过自动创建过程),它将全部运行。但是除了通过 .idea 相关方式之外,我无法弄清楚每个文件是如何链接的。例如,没有 tomcat 文件。没有服务器.xml我可以看到,尽管它在pom.xml中被引用。
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat6-maven-plugin</artifactId>
<version>2.3-SNAPSHOT</version>
</plugin>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.3-SNAPSHOT</version>
<executions>
<execution>
<id>tomcat-run</id>
<goals>
<goal>exec-war-only</goal>
</goals>
<phase>package</phase>
<configuration>
<path>foo</path>
<!-- optional, needed only if you want to use a preconfigured server.xml file -->
<serverXml>src/main/tomcatconf/server.xml</serverXml>
<!-- optional values which can be configurable -->
<attachArtifactClassifier>default value is exec-war but you can customize</attachArtifactClassifier>
<attachArtifactClassifierType>default value is jar</attachArtifactClassifierType>
</configuration>
</execution>
</executions>
</plugin>
但在这种情况下,它是一个插件,似乎与我所做的略有不同(如果错误,请纠正我,我是 maven/tomcat 的新手)
我对 intellij 中发生的事情的解释是,maven 项目是在 tomcat 上运行的。我想使用 maven 来运行具有自己文件的 tomcat 项目的地方。(如果你能在这里更好地解释或纠正我,我将不胜感激)它们都以某种方式引用服务器.xml文件。
------编辑好的,所以我重读:mkyong.com/maven/how-to-deploy-maven-based-war-file-to-tomcat
我相信在我的 tomcat 文件中运行我的 tomcat catalina.sh(从 apache 示例下载)将允许我保留我的路径。我正在努力解决的问题如下:
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat6-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<url>http://localhost:8080/manager</url>
<server>TomcatServer</server>
<path>/mkyongWebApp</path>
</configuration>
</plugin>
该示例使用 tomcat 的方式是将其用作插件。这意味着它永远不会读取我的雄猫文件。如何让它运行我的本地 tomcat 文件。
我在这里找到了一个解决方案:https://tomcat.apache.org/maven-plugin-trunk/executable-war-jar.html
例如,您将 serverXml 设置为指向本地 tomcat 安装。
<project>
...
<packaging>war or pom</packaging>
...
<build>
...
<plugins>
...
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.3-SNAPSHOT</version>
<executions>
<execution>
<id>tomcat-run</id>
<goals>
<goal>exec-war-only</goal>
</goals>
<phase>package</phase>
<configuration>
<path>foo</path>
<!-- optional, needed only if you want to use a preconfigured server.xml file -->
<serverXml>src/main/tomcatconf/server.xml</serverXml>
<!-- optional values which can be configurable -->
<attachArtifactClassifier>default value is exec-war but you can customize</attachArtifactClassifier>
<attachArtifactClassifierType>default value is jar</attachArtifactClassifierType>
</configuration>
</execution>
</executions>
</plugin>
...
</plugins>
...
</build>
...
</project>