如何将本地雄猫版本与 maven 一起使用


之前

可能已经问过这个问题(如果是,请链接我),但是当我搜索时,我找到了一堆如何在 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>

最新更新