gpt4 book ai didi

java - 如何使用本地 tomcat 版本与 maven

转载 作者:行者123 更新时间:2023-11-28 22:28:49 25 4
gpt4 key购买 nike

这可能以前有人问过(如果是请链接我),但是当我搜索时,我发现了一堆如何在 tomcat 上运行 maven,如何连接 IDE 来执行此操作(几乎所有这些都是ide/configuration问题),如何在tomcat中使用maven插件等相关问题。

我知道我可以使用像 intellij 或 eclipse 这样的 IDE 来创建一个带有 maven 和 tomcat 的 web 应用程序项目,由于设置配置,它们只会运行。我正在玩耍并试图看看如何手动完成(希望能学到一些东西)。

现在我有一个正在运行的 tomcat 项目。基本上我从 http://tomcat.apache.org/ 下载了 tomcat 8 .然后我提取了示例文件,并让它运行我自己的文件。

我想用 maven 包装它。

我创建了一个典型的 maven 项目(示例):

.
|____WebApp
| |____pom.xml
| |____src
| | |____main
| | | |____resources
| | | |____webapp
| | | | |____index.jsp
| | | | |____WEB-INF
| | | | | |____web.xml

我的 tomcat 文件放在哪里?在 webApp 中?

运行tomcat我正在使用

bin/catalina.sh run

来 self 的 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>

但在这种情况下,它是一个看起来与我正在做的略有不同的插件(如果那是错误的,请纠正我,我是 maven/tomcat 的新手)

我对intellij中发生的事情的解释是maven项目正在tomcat上运行。我想在哪里使用 maven 来运行我的 tomcat 项目,它有自己的文件。 (如果您能更好地解释这一点或在此处纠正我,我将不胜感激)它们都以某种方式引用了 server.xml 文件。

------编辑好的,所以我重新阅读:mkyong.com/maven/how-to-deploy-maven-based-war-file-to-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>

该示例使用 tomcat 的方式是将其用作插件。这意味着它永远不会读取我的 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>

关于java - 如何使用本地 tomcat 版本与 maven,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30859039/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com