使用 tomcat7-maven-plugin 指定要打包的目录

Specifying which directory to package using tomcat7-maven-plugin

我正在使用 tomcat7-maven-plugin,我的 Web 应用程序存储在 src/main/webapp 中。它是一个 React 应用程序,所以我 运行 npm run buildsrc/main/webapp/build 中生成一个 "compiled" 版本。我的问题是,每当我打包 webapp 时,都会打包整个 webapp 文件夹(包括 node_modules...),而不仅仅是 build 文件夹。

这是我的插件配置:

<pluginManagement>
    <plugins>
        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <configuration>
                <port>9090</port>
                <!-- I am looking for something of the following form -->
                <webappPath>build</webappPath>
            </configuration>
        </plugin>
    </plugins>
</pluginManagement>

如何让插件只打包webapp/build目录?或者有没有办法至少从包中排除 node_modules,因为所有这些模块仅用于创建我的 webapp 的打包版本?

tomcat7-maven-plugin 不负责打包您的 war 文件。只负责tomcat.

时的deploy undeploy start restart等相关操作

是WAR文件打包相关的mavenWAR插件https://maven.apache.org/plugins/maven-war-plugin/usage.html

如果您想更改 war 插件使用的默认路径,那么您需要

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <configuration>
        <warSourceDirectory>your source directory</warSourceDirectory>
    </configuration>
</plugin>

您可以在构建中包含或排除

    <project>
  ...
  <name>My Resources Plugin Practice Project</name>
  ...
  <build>
    ...
    <resources>
      <resource>
        <directory>src/my-resources</directory>
        <includes>
          <include>**/*.txt</include>
        </includes>
        <excludes>
          <exclude>**/*test*.*</exclude>
        </excludes>
      </resource>
      ...
    </resources>
    ...
  </build>
  ...
</project>

Apache Maven Include or Exclude