首页 文章

maven:过滤后的资源没有打包在WAR文件中

提问于
浏览
3

我有一个maven项目,我正在使用maven-war-plugin打包项目:

<packaging>war</packaging>

我已根据我正在构建的环境从属性文件中设置过滤器:

<filters>
    <filter>properties/${env}.properties</filter>
</filters>

我正在尝试过滤位于/ src / main / webapp / WEB-INF / classes中的xml文件:

<resources>
    <resource>
        <directory>${basedir}/src/main/webapp/WEB-INF/classes</directory>
        <filtering>true</filtering>
    </resource>
</resources>

我使用以下命令从命令行构建项目:

basedir> mvn clean package -Denv=dev

这会在我的目标目录中创建以下内容:

--- target
    +-- classes
    +-- project-name
    --- project-name.war

目标/类中的xml文件已正确过滤 . 但是,不会过滤project-name.war / WEB-INF / classes中的xml文件 .

如何修复我的pom文件或项目目录结构以包含打包的war文件中包含的过滤资源?

1 回答

  • 7

    Webapp资源过滤的处理方式不同 . 这是通过maven-war-plugin完成的:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.1.1</version>
        <configuration>
          <filters>
            <filter>properties/${env}.properties</filter>
          </filters>
          <webResources>
            <resource>
              <directory>/src/main/webapp/WEB-INF/classes</directory>
              <filtering>true</filtering>
              <!-- set files to include, defaulted to ** -->
              <includes>
                <include>**/pattern1</include>
              </includes>
              <!-- set files to exclude  -->
              <excludes>
                <exclude>**/pattern2</exclude>
              </excludes>
            </resource>
          </webResources>
        </configuration>
    </plugin>
    

相关问题