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

时间:2018-02-28 05:27:05

标签: java maven tomcat7-maven-plugin

我正在使用tomcat7-maven-plugin,我的网络应用程序存储在src/main/webapp中。它是一个React应用程序,因此我运行npm run build以在src/main/webapp/build中生成“已编译”版本。我的问题是,每当我打包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的打包版本?

2 个答案:

答案 0 :(得分:2)

tomcat7-maven-plugin不负责打包war文件。它只负责在tomcat上部署undeploy start restart和其他相关操作。

maven WAR插件与WAR文件的打包有关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>

答案 1 :(得分:1)

您可以在构建

中包含或排除
    <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