Maven Maven-war-plugin不替换web.xml中的值

时间:2018-11-19 19:13:24

标签: java maven intellij-idea

Maven版本:3.5.4

我的网站目录不在标准位置。在/ web

Maven War配置

 <plugin>
            <artifactId>maven-war-plugin</artifactId>
            <version>3.2.2</version>
            <configuration>
                <webResources>
                    <!--
                        Filter these files to look for ${my.maven.property} to replace them
                        at build time with a maven property value
                    -->
                    <resource>
                        <filtering>true</filtering>
                        <directory>web/WEB-INF</directory>
                        <includes>
                            <include>**/web.xml</include>
                        </includes>
                    </resource>
                </webResources>
                <warSourceDirectory>web</warSourceDirectory>
                <failOnMissingWebXml>true</failOnMissingWebXml>
                <webXml>web/WEB-INF/web.xml</webXml>
                <packagingExcludes>
                   ${exclude.files.on.build}
                </packagingExcludes>
            </configuration>
        </plugin>
pom.xml中的

属性片段

  <properties>
       ...

       <!-- web.xml vars -->
       <web.session.cookie.secure>true</web.session.cookie.secure> <!-- session cookie only sent over https -->
      ...
 </properties>

web.xml代码段

   <cookie-config>
        ...
        <secure>${web.session.cookie.secure}</secure>
        ...
    </cookie-config>

不会在web.xml中替换属性“ $ {web.session.cookie.secure}”,并且属性名称保留在生成的war文件中。我无法查明配置错误。我正在Intellij中工作,无论我是从intellij菜单构建构件还是发出mvn war:exploded命令,都得到相同的结果。

我假设它可能与Web目录位置和缺少的配置项有关。除了在输出中未替换属性的问题外,Maven构建按预期运行。

关于为什么不能使用过滤Maven-war-plugin进行替换的想法?

1 个答案:

答案 0 :(得分:1)

maven-war-plugin使用${basedir}作为pom的位置,因此应通过从那里开始的相对路径来引用用于过滤的目标目录。

<resource>
  <filtering>true</filtering>
  <directory>${basedir}/web/WEB-INF</directory>
  <includes>
    <include>**/web.xml</include>
  </includes>
</resource>

可以在mvn help:effective-pom中检查实际路径。