Java 如何将本地tomcat版本与maven一起使用
以前可能有人问过这个问题(如果是请链接我),但当我搜索时,我发现了一大堆如何在tomcat上运行maven、如何连接IDE来实现这一点(几乎所有这些都是IDE/配置问题)、如何在tomcat中使用maven插件等相关问题 我知道我可以使用intellij或eclipse之类的IDE来创建一个带有maven和tomcat的web应用程序项目,因为设置和配置的缘故,它们只会运行。我正在玩游戏,试图看看如何手动操作(希望能学到一些东西) 现在我有一个正在运行的tomcat项目。基本上我是从下载Tomcat8的。然后我提取了示例文件,并让它运行我自己的文件 我想用maven把这个包起来 我创建了一个典型的maven项目(示例): 我应该把tomcat文件放在哪里? 在webApp中 运行我正在使用的tomcatJava 如何将本地tomcat版本与maven一起使用,java,maven,tomcat,Java,Maven,Tomcat,以前可能有人问过这个问题(如果是请链接我),但当我搜索时,我发现了一大堆如何在tomcat上运行maven、如何连接IDE来实现这一点(几乎所有这些都是IDE/配置问题)、如何在tomcat中使用maven插件等相关问题 我知道我可以使用intellij或eclipse之类的IDE来创建一个带有maven和tomcat的web应用程序项目,因为设置和配置的缘故,它们只会运行。我正在玩游戏,试图看看如何手动操作(希望能学到一些东西) 现在我有一个正在运行的tomcat项目。基本上我是从下载Tomc
bin/catalina.sh run
从我的tomcat文件。我可以从pom运行它吗,或者我需要创建一个java文件来调用它吗
如果我在Intellij中(通过自动创建过程)执行此操作,它将全部运行。但我不知道每个文件是如何链接的,除了通过与.idea相关的方式。例如,没有tomcat文件。虽然pom.xml中引用了server.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>
org.apache.tomcat.maven
tomcat6 maven插件
2.3-2
org.apache.tomcat.maven
tomcat7 maven插件
2.3-2
雄猫赛跑
仅限执行战争
包裹
福
src/main/tomcatconf/server.xml
默认值为exec war,但您可以自定义
默认值是jar
但在本例中,它是一个插件,似乎与我正在做的略有不同(如果这是错误的,请纠正我,我是maven/tomcat新手)
我对intellij的理解是maven项目是在tomcat上运行的。我想使用maven运行有自己文件的tomcat项目。(如果您能更好地解释这一点或在这里纠正我,我将非常感激)它们都以某种方式引用了server.xml文件
------
编辑
好的,我重读:mkyong.com/maven/如何将基于maven的war文件部署到tomcat上
我相信在tomcat文件(从apache示例下载)中运行tomcat catalina.sh将允许我保留路径。我正在努力解决的问题如下:
<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>
org.apache.tomcat.maven
tomcat6 maven插件
2.2
http://localhost:8080/manager
TomcatServer
/mkyongWebApp
示例使用tomcat的方式是将其用作插件。这意味着它永远不会读取我的tomcat文件。如何让它运行本地tomcat文件 我在这里找到了一个解决方案:
例如,将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>
...
战争还是pom
...
...
...
org.apache.tomcat.maven
tomcat7 maven插件
2.3-2
雄猫赛跑
仅限执行战争
包裹
福
src/main/tomcatconf/server.xml
默认值为exec war,但您可以自定义
默认值是jar
...
...
...
我在这里找到了一个解决方案:
例如,将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>
...
战争还是pom
...
...
...
org.apache.tomcat.maven
tomcat7 maven插件
2.3-2
雄猫赛跑
仅限执行战争
包裹
福
src/main/tomcatconf/server.xml
默认值为exec war,但您可以自定义
默认值是jar
...
...
...
尝试阅读@rpc1嘿,谢谢你的评论。实际上我读过。也许我误解了。但我的理解是,它对tomcat发动了一场专业战争。我不想在tomcat上运行maven项目。我正在尝试使用maven来运行我的tomcat项目。如果您查看tomcat basic下载,您将看到它启动了一个网页。在这种情况下,我不想超越那个网页。我知道这是一个奇怪的要求,但这只是我想尝试的练习。@rpc1-hmm也许你是对的。我把这一页又读了一遍。我不想要像/mkyoungWebApp这样的东西,但从他的例子来看,原始的tomcat目录没有被覆盖。这是真的吗?你能证实吗?如果我不想要任何maven创建的目录,我可以省略路径吗?@rpc1您是否知道关于如何解决冲突的文档链接?如果我指定了一个与Tomcat冲突的maven路径怎么办?我想,如果应用程序存在,您将出现一个错误:[INFO]无法调用Tomcat manager:FAIL-应用程序已经存在于path/mywebappTry to read@rpc1嘿,感谢您的评论。实际上我读过。也许我误解了。但我的理解是,它对tomcat发动了一场专业战争。我不想在tomcat上运行maven项目。我正在尝试使用maven来运行我的tomcat项目。如果你