为什么以及如何避免 Maven 替换 ${id} in jsp on mvn package

Why and how to avoid Maven to replace ${id} in jsp on mvn package

当我 "mvn package" 我的 webapp 时,jsp 中所有出现的 ${id} 都被

替换

com.domainname.projectname:project-warname:war:0.0.1-SNAPSHOT

Maven 版本 3.0.5

pom.xml:

<plugin>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.3</version>
    <configuration>
        <webResources>
            <resource>
                <directory>src/main/webapp</directory>
                <filtering>true</filtering>
            </resource>
        </webResources>
    </configuration>
</plugin>

初始Jsp:

<c:url var="myUrl" value="/view/${id}"/>

Jsp 在 war 之后 "mvn package":

<c:url var="myUrl" value="/view/com.domainname.projectname:project-warname:war:0.0.1-SNAPSHOT"/>

我怎样才能避免这种情况?

您可以使用排除指令:

      <resource>
        <directory>src/my-dir</directory>
        <excludes>
          <exclude>**/*.jsp</exclude>
        </excludes>
      </resource>
<filtering>true</filtering>
<includes>
  <include>**/directoryNameWithKeysToReplace/*</include>
</includes>

现有答案是正确的,但我遗漏了一件重要的事情 - <filtering>false</filtering> 并不意味着不遵守 <include><exclude> 规则 - 这是一个不同的功能"only" 处理每个文件并进行替换。