如何将Maven项目中的特定文件打包到战争中的特定目录?

时间:2017-02-10 12:09:05

标签: maven maven-plugin

我有一个项目和这个目录

src/main/texts

在这个目录中我有很多文件类型,例如* .txt,* .cvs等

我想生成一场战争,我只需要在战争的特定目录中使用此目录的* .txt文件,例如:

war/files/*.txt

我可以使用什么maven插件来执行此操作? 将“src / main / texts”的所有* .txt文件打包到战争目录“files”中。

2 个答案:

答案 0 :(得分:2)

请参阅maven war插件的“添加和过滤外部Web资源”。 检查maven文档here

示例插件配置:

<plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <version>3.0.0</version>
        <configuration>
          <webResources>
            <resource>

              <!-- this is relative to the pom.xml directory -->
              <directory>src/main/texts</directory>
              <!-- the default value is ** -->
              <includes>
                    <include>**/*.txt</include>
            </includes>
            <targetPath>war/files</targetPath>

            </resource>

          </webResources>
        </configuration>
      </plugin>

答案 1 :(得分:1)

将这些文件移动到单独的目录中,并将以下内容添加到您的配置中:

    <configuration>
      <webResources>
        <resource>
          <!-- this is relative to the pom.xml directory -->
          <directory>TheFolderYouHavedecided<directory>
        </resource>
      </webResources>
    </configuration>

或者另一种方法是定义你喜欢的文件夹:

    <configuration>
      <webResources>
        <resource>
          <!-- this is relative to the pom.xml directory -->
          <directory>src/main/texts<directory>
          <includes>
            <include>**/*.txt</include>
          </includes>
          <targetPath>war/files</targetPath>
        </resource>
      </webResources>
    </configuration>

我建议重新考虑您的项目结构以及放置哪些部分。

http://maven.apache.org/plugins/maven-war-plugin/examples/adding-filtering-webresources.html